<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621680800095"><span id="local-6989586621680800096"><span id="local-6989586621680800097"><span id="local-6989586621680800098"><span id="local-6989586621680800099"><span id="local-6989586621680800100"><span id="local-6989586621680800101"></span></span></span></span></span></span></span><span class="hs-comment">-- (c) The University of Glasgow, 1992-2006</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE StandaloneDeriving #-}</span><span>
</span><span id="line-5"></span><span class="hs-pragma">{-# LANGUAGE DeriveFunctor      #-}</span><span>
</span><span id="line-6"></span><span class="hs-pragma">{-# LANGUAGE DeriveFoldable     #-}</span><span>
</span><span id="line-7"></span><span class="hs-pragma">{-# LANGUAGE DeriveTraversable  #-}</span><span>
</span><span id="line-8"></span><span class="hs-pragma">{-# LANGUAGE FlexibleInstances  #-}</span><span>
</span><span id="line-9"></span><span class="hs-pragma">{-# LANGUAGE RecordWildCards    #-}</span><span>
</span><span id="line-10"></span><span class="hs-pragma">{-# LANGUAGE TypeFamilies       #-}</span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# LANGUAGE ViewPatterns       #-}</span><span>
</span><span id="line-12"></span><span class="hs-pragma">{-# LANGUAGE FlexibleContexts   #-}</span><span>
</span><span id="line-13"></span><span class="hs-pragma">{-# LANGUAGE PatternSynonyms    #-}</span><span>
</span><span id="line-14"></span><span>
</span><span id="line-15"></span><span>
</span><span id="line-16"></span><span class="hs-comment">-- | This module contains types that relate to the positions of things</span><span>
</span><span id="line-17"></span><span class="hs-comment">-- in source files, and allow tagging of those things with locations</span><span>
</span><span id="line-18"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Types.SrcLoc</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-19"></span><span>        </span><span class="annot"><span class="hs-comment">-- * SrcLoc</span></span><span>
</span><span id="line-20"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier">RealSrcLoc</span></a></span><span class="hs-special">,</span><span>             </span><span class="hs-comment">-- Abstract</span><span>
</span><span id="line-21"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier">SrcLoc</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>
</span><span id="line-23"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Constructing SrcLoc</span></span><span>
</span><span id="line-24"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcLoc"><span class="hs-identifier">mkSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier">mkRealSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralSrcLoc"><span class="hs-identifier">mkGeneralSrcLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>
</span><span id="line-26"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#noSrcLoc"><span class="hs-identifier">noSrcLoc</span></a></span><span class="hs-special">,</span><span>               </span><span class="hs-comment">-- &quot;I'm sorry, I haven't a clue&quot;</span><span>
</span><span id="line-27"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#generatedSrcLoc"><span class="hs-identifier">generatedSrcLoc</span></a></span><span class="hs-special">,</span><span>        </span><span class="hs-comment">-- Code generated within the compiler</span><span>
</span><span id="line-28"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#interactiveSrcLoc"><span class="hs-identifier">interactiveSrcLoc</span></a></span><span class="hs-special">,</span><span>      </span><span class="hs-comment">-- Code from an interactive session</span><span>
</span><span id="line-29"></span><span>
</span><span id="line-30"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier">advanceSrcLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceBufPos"><span class="hs-identifier">advanceBufPos</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>
</span><span id="line-33"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Unsafely deconstructing SrcLoc</span></span><span>
</span><span id="line-34"></span><span>        </span><span class="hs-comment">-- These are dubious exports, because they crash on some inputs</span><span>
</span><span id="line-35"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocFile"><span class="hs-identifier">srcLocFile</span></a></span><span class="hs-special">,</span><span>             </span><span class="hs-comment">-- return the file name part</span><span>
</span><span id="line-36"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocLine"><span class="hs-identifier">srcLocLine</span></a></span><span class="hs-special">,</span><span>             </span><span class="hs-comment">-- return the line part</span><span>
</span><span id="line-37"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocCol"><span class="hs-identifier">srcLocCol</span></a></span><span class="hs-special">,</span><span>              </span><span class="hs-comment">-- return the column part</span><span>
</span><span id="line-38"></span><span>
</span><span id="line-39"></span><span>        </span><span class="annot"><span class="hs-comment">-- * SrcSpan</span></span><span>
</span><span id="line-40"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier">RealSrcSpan</span></a></span><span class="hs-special">,</span><span>            </span><span class="hs-comment">-- Abstract</span><span>
</span><span id="line-41"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier">SrcSpan</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier">UnhelpfulSpanReason</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>
</span><span id="line-44"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Constructing SrcSpan</span></span><span>
</span><span id="line-45"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralSrcSpan"><span class="hs-identifier">mkGeneralSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpan"><span class="hs-identifier">mkSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier">mkRealSrcSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier">noSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#generatedSrcSpan"><span class="hs-identifier">generatedSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGeneratedSrcSpan"><span class="hs-identifier">isGeneratedSrcSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#wiredInSrcSpan"><span class="hs-identifier">wiredInSrcSpan</span></a></span><span class="hs-special">,</span><span>         </span><span class="hs-comment">-- Something wired into the compiler</span><span>
</span><span id="line-48"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#interactiveSrcSpan"><span class="hs-identifier">interactiveSrcSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocSpan"><span class="hs-identifier">srcLocSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcLocSpan"><span class="hs-identifier">realSrcLocSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier">combineSrcSpans</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFirstCharacter"><span class="hs-identifier">srcSpanFirstCharacter</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-52"></span><span>
</span><span id="line-53"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Deconstructing SrcSpan</span></span><span>
</span><span id="line-54"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStart"><span class="hs-identifier">srcSpanStart</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEnd"><span class="hs-identifier">srcSpanEnd</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier">realSrcSpanStart</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier">realSrcSpanEnd</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier">srcSpanFileName_maybe</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-57"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier">pprUserRealSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUnhelpfulSpanReason"><span class="hs-identifier">pprUnhelpfulSpanReason</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier">unhelpfulSpanFS</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-59"></span><span>
</span><span id="line-60"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Unsafely deconstructing SrcSpan</span></span><span>
</span><span id="line-61"></span><span>        </span><span class="hs-comment">-- These are dubious exports, because they crash on some inputs</span><span>
</span><span id="line-62"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier">srcSpanFile</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-63"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier">srcSpanStartLine</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier">srcSpanEndLine</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-64"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier">srcSpanStartCol</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier">srcSpanEndCol</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-65"></span><span>
</span><span id="line-66"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Predicates on SrcSpan</span></span><span>
</span><span id="line-67"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGoodSrcSpan"><span class="hs-identifier">isGoodSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#isOneLineSpan"><span class="hs-identifier">isOneLineSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-68"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#containsSpan"><span class="hs-identifier">containsSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-69"></span><span>
</span><span id="line-70"></span><span>        </span><span class="annot"><span class="hs-comment">-- * StringBuffer locations</span></span><span>
</span><span id="line-71"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier">BufPos</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-72"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufPos"><span class="hs-identifier">getBufPos</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-73"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier">BufSpan</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-74"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier">getBufSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-75"></span><span>
</span><span id="line-76"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Located</span></span><span>
</span><span id="line-77"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier">Located</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-78"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier">RealLocated</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-79"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier">GenLocated</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-80"></span><span>
</span><span id="line-81"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Constructing Located</span></span><span>
</span><span id="line-82"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier">noLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-83"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralLocated"><span class="hs-identifier">mkGeneralLocated</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Deconstructing Located</span></span><span>
</span><span id="line-86"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier">getLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier">unLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-87"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#unRealSrcSpan"><span class="hs-identifier">unRealSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#getRealSrcSpan"><span class="hs-identifier">getRealSrcSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-88"></span><span>
</span><span id="line-89"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Modifying Located</span></span><span>
</span><span id="line-90"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mapLoc"><span class="hs-identifier">mapLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-91"></span><span>
</span><span id="line-92"></span><span>        </span><span class="annot"><span class="hs-comment">-- ** Combining and comparing Located values</span></span><span>
</span><span id="line-93"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#eqLocated"><span class="hs-identifier">eqLocated</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#cmpLocated"><span class="hs-identifier">cmpLocated</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#cmpBufSpan"><span class="hs-identifier">cmpBufSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-94"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineLocs"><span class="hs-identifier">combineLocs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier">addCLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-95"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmost_smallest"><span class="hs-identifier">leftmost_smallest</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmost_largest"><span class="hs-identifier">leftmost_largest</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#rightmost_smallest"><span class="hs-identifier">rightmost_smallest</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-96"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#spans"><span class="hs-identifier">spans</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#isSubspanOf"><span class="hs-identifier">isSubspanOf</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#isRealSubspanOf"><span class="hs-identifier">isRealSubspanOf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-97"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#sortLocated"><span class="hs-identifier">sortLocated</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#sortRealLocated"><span class="hs-identifier">sortRealLocated</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-98"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcLoc"><span class="hs-identifier">lookupSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcSpan"><span class="hs-identifier">lookupSrcSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-99"></span><span>
</span><span id="line-100"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier">liftL</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Parser locations</span></span><span>
</span><span id="line-103"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier">PsLoc</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-104"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier">PsSpan</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-105"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLocated"><span class="hs-identifier">PsLocated</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-106"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#advancePsLoc"><span class="hs-identifier">advancePsLoc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-107"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkPsSpan"><span class="hs-identifier">mkPsSpan</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-108"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#psSpanStart"><span class="hs-identifier">psSpanStart</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-109"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#psSpanEnd"><span class="hs-identifier">psSpanEnd</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-110"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpanPs"><span class="hs-identifier">mkSrcSpanPs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-111"></span><span>
</span><span id="line-112"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Layout information</span></span><span>
</span><span id="line-113"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#LayoutInfo"><span class="hs-identifier">LayoutInfo</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-114"></span><span>        </span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmostColumn"><span class="hs-identifier">leftmostColumn</span></a></span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-117"></span><span>
</span><span id="line-118"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-119"></span><span>
</span><span id="line-120"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html"><span class="hs-identifier">GHC.Utils.Misc</span></a></span><span>
</span><span id="line-121"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Json.html"><span class="hs-identifier">GHC.Utils.Json</span></a></span><span>
</span><span id="line-122"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-123"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-124"></span><span>
</span><span id="line-125"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#"><span class="hs-identifier">Control.DeepSeq</span></a></span><span>
</span><span id="line-126"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Applicative.html#"><span class="hs-identifier">Control.Applicative</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#liftA2"><span class="hs-identifier">liftA2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-127"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span>
</span><span id="line-128"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Data.html#"><span class="hs-identifier">Data.Data</span></a></span><span>
</span><span id="line-129"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.List.html#"><span class="hs-identifier">Data.List</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.OldList.html#sortBy"><span class="hs-identifier">sortBy</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier">intercalate</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-130"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Function.html#"><span class="hs-identifier">Data.Function</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Function.html#on"><span class="hs-identifier">on</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-131"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.html#"><span class="hs-identifier">Data.Map</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Map</span></span><span>
</span><span id="line-132"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../base/src/Data.Semigroup.html#"><span class="hs-identifier">Data.Semigroup</span></a></span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcLoc-SrcLocations]{Source-location information}
*                                                                      *
************************************************************************

We keep information about the {\em definition} point for each entity;
this is the obvious stuff:
-}</span><span>
</span><span id="line-144"></span><span>
</span><span id="line-145"></span><span class="hs-comment">-- | Real Source Location</span><span>
</span><span id="line-146"></span><span class="hs-comment">--</span><span>
</span><span id="line-147"></span><span class="hs-comment">-- Represents a single point within a file</span><span>
</span><span id="line-148"></span><span class="hs-keyword">data</span><span> </span><span id="RealSrcLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-var">RealSrcLoc</span></a></span></span><span>
</span><span id="line-149"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="SrcLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span></span><span>      </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>              </span><span class="hs-comment">-- A precise location (file name)</span><span>
</span><span id="line-150"></span><span>                </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>     </span><span class="hs-comment">-- line number, begins at 1</span><span>
</span><span id="line-151"></span><span>                </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>     </span><span class="hs-comment">-- column number, begins at 1</span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799949"><span id="local-6989586621680799954"><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
(RealSrcLoc -&gt; RealSrcLoc -&gt; Bool)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Bool) -&gt; Eq RealSrcLoc
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c/= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
== :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c== :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799922"><span id="local-6989586621680799924"><span id="local-6989586621680799927"><span id="local-6989586621680799930"><span id="local-6989586621680799933"><span id="local-6989586621680799938"><span id="local-6989586621680799944"><span class="annot"><span class="annottext">Eq RealSrcLoc
Eq RealSrcLoc
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Bool)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Bool)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Bool)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; Bool)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc)
-&gt; (RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc)
-&gt; Ord RealSrcLoc
RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc
$cmin :: RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc
max :: RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc
$cmax :: RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcLoc
&gt;= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c&gt;= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
&gt; :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c&gt; :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
&lt;= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c&lt;= :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
&lt; :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
$c&lt; :: RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
compare :: RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
$ccompare :: RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-153"></span><span>
</span><span id="line-154"></span><span class="hs-comment">-- | 0-based offset identifying the raw location in the 'StringBuffer'.</span><span>
</span><span id="line-155"></span><span class="hs-comment">--</span><span>
</span><span id="line-156"></span><span class="hs-comment">-- The lexer increments the 'BufPos' every time a character (UTF-8 code point)</span><span>
</span><span id="line-157"></span><span class="hs-comment">-- is read from the input buffer. As UTF-8 is a variable-length encoding and</span><span>
</span><span id="line-158"></span><span class="hs-comment">-- 'StringBuffer' needs a byte offset for indexing, a 'BufPos' cannot be used</span><span>
</span><span id="line-159"></span><span class="hs-comment">-- for indexing.</span><span>
</span><span id="line-160"></span><span class="hs-comment">--</span><span>
</span><span id="line-161"></span><span class="hs-comment">-- The parser guarantees that 'BufPos' are monotonic. See #17632. This means</span><span>
</span><span id="line-162"></span><span class="hs-comment">-- that syntactic constructs that appear later in the 'StringBuffer' are guaranteed to</span><span>
</span><span id="line-163"></span><span class="hs-comment">-- have a higher 'BufPos'. Constrast that with 'RealSrcLoc', which does *not* make the</span><span>
</span><span id="line-164"></span><span class="hs-comment">-- analogous guarantee about higher line/column numbers.</span><span>
</span><span id="line-165"></span><span class="hs-comment">--</span><span>
</span><span id="line-166"></span><span class="hs-comment">-- This is due to #line and {-# LINE ... #-} pragmas that can arbitrarily</span><span>
</span><span id="line-167"></span><span class="hs-comment">-- modify 'RealSrcLoc'. Notice how 'setSrcLoc' and 'resetAlrLastLoc' in</span><span>
</span><span id="line-168"></span><span class="hs-comment">-- &quot;GHC.Parser.Lexer&quot; update 'PsLoc', modifying 'RealSrcLoc' but preserving</span><span>
</span><span id="line-169"></span><span class="hs-comment">-- 'BufPos'.</span><span>
</span><span id="line-170"></span><span class="hs-comment">--</span><span>
</span><span id="line-171"></span><span class="hs-comment">-- Monotonicity makes 'BufPos' useful to determine the order in which syntactic</span><span>
</span><span id="line-172"></span><span class="hs-comment">-- elements appear in the source. Consider this example (haddockA041 in the test suite):</span><span>
</span><span id="line-173"></span><span class="hs-comment">--</span><span>
</span><span id="line-174"></span><span class="hs-comment">--  haddockA041.hs</span><span>
</span><span id="line-175"></span><span class="hs-comment">--      {-# LANGUAGE CPP #-}</span><span>
</span><span id="line-176"></span><span class="hs-comment">--      -- | Module header documentation</span><span>
</span><span id="line-177"></span><span class="hs-comment">--      module Comments_and_CPP_include where</span><span>
</span><span id="line-178"></span><span class="hs-comment">--      #include &quot;IncludeMe.hs&quot;</span><span>
</span><span id="line-179"></span><span class="hs-comment">--</span><span>
</span><span id="line-180"></span><span class="hs-comment">--  IncludeMe.hs:</span><span>
</span><span id="line-181"></span><span class="hs-comment">--      -- | Comment on T</span><span>
</span><span id="line-182"></span><span class="hs-comment">--      data T = MkT -- ^ Comment on MkT</span><span>
</span><span id="line-183"></span><span class="hs-comment">--</span><span>
</span><span id="line-184"></span><span class="hs-comment">-- After the C preprocessor runs, the 'StringBuffer' will contain a program that</span><span>
</span><span id="line-185"></span><span class="hs-comment">-- looks like this (unimportant lines at the beginning removed):</span><span>
</span><span id="line-186"></span><span class="hs-comment">--</span><span>
</span><span id="line-187"></span><span class="hs-comment">--    # 1 &quot;haddockA041.hs&quot;</span><span>
</span><span id="line-188"></span><span class="hs-comment">--    {-# LANGUAGE CPP #-}</span><span>
</span><span id="line-189"></span><span class="hs-comment">--    -- | Module header documentation</span><span>
</span><span id="line-190"></span><span class="hs-comment">--    module Comments_and_CPP_include where</span><span>
</span><span id="line-191"></span><span class="hs-comment">--    # 1 &quot;IncludeMe.hs&quot; 1</span><span>
</span><span id="line-192"></span><span class="hs-comment">--    -- | Comment on T</span><span>
</span><span id="line-193"></span><span class="hs-comment">--    data T = MkT -- ^ Comment on MkT</span><span>
</span><span id="line-194"></span><span class="hs-comment">--    # 7 &quot;haddockA041.hs&quot; 2</span><span>
</span><span id="line-195"></span><span class="hs-comment">--</span><span>
</span><span id="line-196"></span><span class="hs-comment">-- The line pragmas inserted by CPP make the error messages more informative.</span><span>
</span><span id="line-197"></span><span class="hs-comment">-- The downside is that we can't use RealSrcLoc to determine the ordering of</span><span>
</span><span id="line-198"></span><span class="hs-comment">-- syntactic elements.</span><span>
</span><span id="line-199"></span><span class="hs-comment">--</span><span>
</span><span id="line-200"></span><span class="hs-comment">-- With RealSrcLoc, we have the following location information recorded in the AST:</span><span>
</span><span id="line-201"></span><span class="hs-comment">--   * The module name is located at haddockA041.hs:3:8-31</span><span>
</span><span id="line-202"></span><span class="hs-comment">--   * The Haddock comment &quot;Comment on T&quot; is located at IncludeMe:1:1-17</span><span>
</span><span id="line-203"></span><span class="hs-comment">--   * The data declaration is located at IncludeMe.hs:2:1-32</span><span>
</span><span id="line-204"></span><span class="hs-comment">--</span><span>
</span><span id="line-205"></span><span class="hs-comment">-- Is the Haddock comment located between the module name and the data</span><span>
</span><span id="line-206"></span><span class="hs-comment">-- declaration? This is impossible to tell because the locations are not</span><span>
</span><span id="line-207"></span><span class="hs-comment">-- comparable; they even refer to different files.</span><span>
</span><span id="line-208"></span><span class="hs-comment">--</span><span>
</span><span id="line-209"></span><span class="hs-comment">-- On the other hand, with 'BufPos', we have the following location information:</span><span>
</span><span id="line-210"></span><span class="hs-comment">--   * The module name is located at 846-870</span><span>
</span><span id="line-211"></span><span class="hs-comment">--   * The Haddock comment &quot;Comment on T&quot; is located at 898-915</span><span>
</span><span id="line-212"></span><span class="hs-comment">--   * The data declaration is located at 916-928</span><span>
</span><span id="line-213"></span><span class="hs-comment">--</span><span>
</span><span id="line-214"></span><span class="hs-comment">-- Aside:  if you're wondering why the numbers are so high, try running</span><span>
</span><span id="line-215"></span><span class="hs-comment">--           @ghc -E haddockA041.hs@</span><span>
</span><span id="line-216"></span><span class="hs-comment">--         and see the extra fluff that CPP inserts at the start of the file.</span><span>
</span><span id="line-217"></span><span class="hs-comment">--</span><span>
</span><span id="line-218"></span><span class="hs-comment">-- For error messages, 'BufPos' is not useful at all. On the other hand, this is</span><span>
</span><span id="line-219"></span><span class="hs-comment">-- exactly what we need to determine the order of syntactic elements:</span><span>
</span><span id="line-220"></span><span class="hs-comment">--    870 &lt; 898, therefore the Haddock comment appears *after* the module name.</span><span>
</span><span id="line-221"></span><span class="hs-comment">--    915 &lt; 916, therefore the Haddock comment appears *before* the data declaration.</span><span>
</span><span id="line-222"></span><span class="hs-comment">--</span><span>
</span><span id="line-223"></span><span class="hs-comment">-- We use 'BufPos' in in GHC.Parser.PostProcess.Haddock to associate Haddock</span><span>
</span><span id="line-224"></span><span class="hs-comment">-- comments with parts of the AST using location information (#17544).</span><span>
</span><span id="line-225"></span><span class="hs-keyword">newtype</span><span> </span><span id="BufPos"><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-var">BufPos</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="BufPos"><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-var">BufPos</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="bufPos"><span class="annot"><span class="annottext">BufPos -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#bufPos"><span class="hs-identifier hs-var hs-var">bufPos</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-226"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799913"><span id="local-6989586621680799917"><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; Bool
(BufPos -&gt; BufPos -&gt; Bool)
-&gt; (BufPos -&gt; BufPos -&gt; Bool) -&gt; Eq BufPos
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: BufPos -&gt; BufPos -&gt; Bool
$c/= :: BufPos -&gt; BufPos -&gt; Bool
== :: BufPos -&gt; BufPos -&gt; Bool
$c== :: BufPos -&gt; BufPos -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799882"><span id="local-6989586621680799886"><span id="local-6989586621680799890"><span id="local-6989586621680799894"><span id="local-6989586621680799898"><span id="local-6989586621680799902"><span id="local-6989586621680799906"><span class="annot"><span class="annottext">Eq BufPos
Eq BufPos
-&gt; (BufPos -&gt; BufPos -&gt; Ordering)
-&gt; (BufPos -&gt; BufPos -&gt; Bool)
-&gt; (BufPos -&gt; BufPos -&gt; Bool)
-&gt; (BufPos -&gt; BufPos -&gt; Bool)
-&gt; (BufPos -&gt; BufPos -&gt; Bool)
-&gt; (BufPos -&gt; BufPos -&gt; BufPos)
-&gt; (BufPos -&gt; BufPos -&gt; BufPos)
-&gt; Ord BufPos
BufPos -&gt; BufPos -&gt; Bool
BufPos -&gt; BufPos -&gt; Ordering
BufPos -&gt; BufPos -&gt; BufPos
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: BufPos -&gt; BufPos -&gt; BufPos
$cmin :: BufPos -&gt; BufPos -&gt; BufPos
max :: BufPos -&gt; BufPos -&gt; BufPos
$cmax :: BufPos -&gt; BufPos -&gt; BufPos
&gt;= :: BufPos -&gt; BufPos -&gt; Bool
$c&gt;= :: BufPos -&gt; BufPos -&gt; Bool
&gt; :: BufPos -&gt; BufPos -&gt; Bool
$c&gt; :: BufPos -&gt; BufPos -&gt; Bool
&lt;= :: BufPos -&gt; BufPos -&gt; Bool
$c&lt;= :: BufPos -&gt; BufPos -&gt; Bool
&lt; :: BufPos -&gt; BufPos -&gt; Bool
$c&lt; :: BufPos -&gt; BufPos -&gt; Bool
compare :: BufPos -&gt; BufPos -&gt; Ordering
$ccompare :: BufPos -&gt; BufPos -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799871"><span id="local-6989586621680799873"><span id="local-6989586621680799878"><span class="annot"><span class="annottext">Int -&gt; BufPos -&gt; ShowS
[BufPos] -&gt; ShowS
BufPos -&gt; String
(Int -&gt; BufPos -&gt; ShowS)
-&gt; (BufPos -&gt; String) -&gt; ([BufPos] -&gt; ShowS) -&gt; Show BufPos
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [BufPos] -&gt; ShowS
$cshowList :: [BufPos] -&gt; ShowS
show :: BufPos -&gt; String
$cshow :: BufPos -&gt; String
showsPrec :: Int -&gt; BufPos -&gt; ShowS
$cshowsPrec :: Int -&gt; BufPos -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-227"></span><span>
</span><span id="line-228"></span><span class="hs-comment">-- | Source Location</span><span>
</span><span id="line-229"></span><span class="hs-keyword">data</span><span> </span><span id="SrcLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span></span><span>
</span><span id="line-230"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="RealSrcLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-var">RealSrcLoc</span></a></span></span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- See Note [Why Maybe BufPos]</span><span>
</span><span id="line-231"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span></span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>     </span><span class="hs-comment">-- Just a general indication</span><span>
</span><span id="line-232"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799859"><span id="local-6989586621680799866"><span class="annot"><span class="annottext">SrcLoc -&gt; SrcLoc -&gt; Bool
(SrcLoc -&gt; SrcLoc -&gt; Bool)
-&gt; (SrcLoc -&gt; SrcLoc -&gt; Bool) -&gt; Eq SrcLoc
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: SrcLoc -&gt; SrcLoc -&gt; Bool
$c/= :: SrcLoc -&gt; SrcLoc -&gt; Bool
== :: SrcLoc -&gt; SrcLoc -&gt; Bool
$c== :: SrcLoc -&gt; SrcLoc -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799845"><span id="local-6989586621680799847"><span id="local-6989586621680799857"><span class="annot"><span class="annottext">Int -&gt; SrcLoc -&gt; ShowS
[SrcLoc] -&gt; ShowS
SrcLoc -&gt; String
(Int -&gt; SrcLoc -&gt; ShowS)
-&gt; (SrcLoc -&gt; String) -&gt; ([SrcLoc] -&gt; ShowS) -&gt; Show SrcLoc
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [SrcLoc] -&gt; ShowS
$cshowList :: [SrcLoc] -&gt; ShowS
show :: SrcLoc -&gt; String
$cshow :: SrcLoc -&gt; String
showsPrec :: Int -&gt; SrcLoc -&gt; ShowS
$cshowsPrec :: Int -&gt; SrcLoc -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcLoc-access-fns]{Access functions}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-241"></span><span>
</span><span id="line-242"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcLoc"><span class="hs-identifier hs-type">mkSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span>
</span><span id="line-243"></span><span id="mkSrcLoc"><span class="annot"><span class="annottext">mkSrcLoc :: FastString -&gt; Int -&gt; Int -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkSrcLoc"><span class="hs-identifier hs-var hs-var">mkSrcLoc</span></a></span></span><span> </span><span id="local-6989586621680799844"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799844"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680799843"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799843"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621680799842"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799842"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Maybe BufPos -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-var">RealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-var">mkRealSrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799844"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799843"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799842"><span class="hs-identifier hs-var">col</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-244"></span><span>
</span><span id="line-245"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-type">mkRealSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span>
</span><span id="line-246"></span><span id="mkRealSrcLoc"><span class="annot"><span class="annottext">mkRealSrcLoc :: FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-var hs-var">mkRealSrcLoc</span></a></span></span><span> </span><span id="local-6989586621680799841"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799841"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span id="local-6989586621680799840"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799840"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621680799839"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799839"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799841"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799840"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799839"><span class="hs-identifier hs-var">col</span></a></span><span>
</span><span id="line-247"></span><span>
</span><span id="line-248"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufPos"><span class="hs-identifier hs-type">getBufPos</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span>
</span><span id="line-249"></span><span id="getBufPos"><span class="annot"><span class="annottext">getBufPos :: SrcLoc -&gt; Maybe BufPos
</span><a href="GHC.Types.SrcLoc.html#getBufPos"><span class="hs-identifier hs-var hs-var">getBufPos</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799838"><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799838"><span class="hs-identifier hs-var">mbpos</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799838"><span class="hs-identifier hs-var">mbpos</span></a></span><span>
</span><span id="line-250"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufPos"><span class="hs-identifier hs-var">getBufPos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-251"></span><span>
</span><span id="line-252"></span><span class="hs-comment">-- | Built-in &quot;bad&quot; 'SrcLoc' values for particular locations</span><span>
</span><span id="line-253"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#noSrcLoc"><span class="hs-identifier hs-type">noSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#generatedSrcLoc"><span class="hs-identifier hs-type">generatedSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#interactiveSrcLoc"><span class="hs-identifier hs-type">interactiveSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span>
</span><span id="line-254"></span><span id="noSrcLoc"><span class="annot"><span class="annottext">noSrcLoc :: SrcLoc
</span><a href="GHC.Types.SrcLoc.html#noSrcLoc"><span class="hs-identifier hs-var hs-var">noSrcLoc</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;no location info&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-255"></span><span id="generatedSrcLoc"><span class="annot"><span class="annottext">generatedSrcLoc :: SrcLoc
</span><a href="GHC.Types.SrcLoc.html#generatedSrcLoc"><span class="hs-identifier hs-var hs-var">generatedSrcLoc</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;compiler-generated code&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-256"></span><span id="interactiveSrcLoc"><span class="annot"><span class="annottext">interactiveSrcLoc :: SrcLoc
</span><a href="GHC.Types.SrcLoc.html#interactiveSrcLoc"><span class="hs-identifier hs-var hs-var">interactiveSrcLoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;interactive&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-257"></span><span>
</span><span id="line-258"></span><span class="hs-comment">-- | Creates a &quot;bad&quot; 'SrcLoc' that has no detailed information about its location</span><span>
</span><span id="line-259"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralSrcLoc"><span class="hs-identifier hs-type">mkGeneralSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span>
</span><span id="line-260"></span><span id="mkGeneralSrcLoc"><span class="annot"><span class="annottext">mkGeneralSrcLoc :: FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkGeneralSrcLoc"><span class="hs-identifier hs-var hs-var">mkGeneralSrcLoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span>
</span><span id="line-261"></span><span>
</span><span id="line-262"></span><span class="hs-comment">-- | Gives the filename of the 'RealSrcLoc'</span><span>
</span><span id="line-263"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocFile"><span class="hs-identifier hs-type">srcLocFile</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-264"></span><span id="srcLocFile"><span class="annot"><span class="annottext">srcLocFile :: RealSrcLoc -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcLocFile"><span class="hs-identifier hs-var hs-var">srcLocFile</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799836"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799836"><span class="hs-identifier hs-var">fname</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799836"><span class="hs-identifier hs-var">fname</span></a></span><span>
</span><span id="line-265"></span><span>
</span><span id="line-266"></span><span class="hs-comment">-- | Raises an error when used on a &quot;bad&quot; 'SrcLoc'</span><span>
</span><span id="line-267"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocLine"><span class="hs-identifier hs-type">srcLocLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-268"></span><span id="srcLocLine"><span class="annot"><span class="annottext">srcLocLine :: RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocLine"><span class="hs-identifier hs-var hs-var">srcLocLine</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799835"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799835"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799835"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-269"></span><span>
</span><span id="line-270"></span><span class="hs-comment">-- | Raises an error when used on a &quot;bad&quot; 'SrcLoc'</span><span>
</span><span id="line-271"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocCol"><span class="hs-identifier hs-type">srcLocCol</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-272"></span><span id="srcLocCol"><span class="annot"><span class="annottext">srcLocCol :: RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocCol"><span class="hs-identifier hs-var hs-var">srcLocCol</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799834"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799834"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799834"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-273"></span><span>
</span><span id="line-274"></span><span class="hs-comment">-- | Move the 'SrcLoc' down by one line if the character is a newline,</span><span>
</span><span id="line-275"></span><span class="hs-comment">-- to the next 8-char tabstop if it is a tab, and across by one</span><span>
</span><span id="line-276"></span><span class="hs-comment">-- character in any other case</span><span>
</span><span id="line-277"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier hs-type">advanceSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span>
</span><span id="line-278"></span><span id="advanceSrcLoc"><span class="annot"><span class="annottext">advanceSrcLoc :: RealSrcLoc -&gt; Char -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier hs-var hs-var">advanceSrcLoc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799833"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799833"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680799832"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799832"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799833"><span class="hs-identifier hs-var">f</span></a></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799832"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-279"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier hs-var">advanceSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799830"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799830"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680799829"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799829"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680799828"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799828"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799830"><span class="hs-identifier hs-var">f</span></a></span><span>  </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799829"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#advance_tabstop"><span class="hs-identifier hs-var">advance_tabstop</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799828"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-280"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier hs-var">advanceSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799826"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799826"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680799825"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799825"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680799824"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799824"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-identifier">_</span></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799826"><span class="hs-identifier hs-var">f</span></a></span><span>  </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799825"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799824"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-281"></span><span>
</span><span id="line-282"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advance_tabstop"><span class="hs-identifier hs-type">advance_tabstop</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-283"></span><span id="advance_tabstop"><span class="annot"><span class="annottext">advance_tabstop :: Int -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#advance_tabstop"><span class="hs-identifier hs-var hs-var">advance_tabstop</span></a></span></span><span> </span><span id="local-6989586621680799823"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799823"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799823"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; Int -&gt; a
</span><a href="../../base/src/Data.Bits.html#shiftR"><span class="hs-operator hs-var">`shiftR`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Bits a =&gt; a -&gt; Int -&gt; a
</span><a href="../../base/src/Data.Bits.html#shiftL"><span class="hs-operator hs-var">`shiftL`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-284"></span><span>
</span><span id="line-285"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advanceBufPos"><span class="hs-identifier hs-type">advanceBufPos</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span>
</span><span id="line-286"></span><span id="advanceBufPos"><span class="annot"><span class="annottext">advanceBufPos :: BufPos -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#advanceBufPos"><span class="hs-identifier hs-var hs-var">advanceBufPos</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span> </span><span id="local-6989586621680799820"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799820"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-var">BufPos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799820"><span class="hs-identifier hs-var">i</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-287"></span><span>
</span><span id="line-288"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcLoc-instances]{Instance declarations for various names}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-295"></span><span>
</span><span id="line-296"></span><span id="local-6989586621680800506"><span class="annot"><a href="GHC.Types.SrcLoc.html#sortLocated"><span class="hs-identifier hs-type">sortLocated</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800506"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800506"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-297"></span><span id="sortLocated"><span class="annot"><span class="annottext">sortLocated :: forall a. [Located a] -&gt; [Located a]
</span><a href="GHC.Types.SrcLoc.html#sortLocated"><span class="hs-identifier hs-var hs-var">sortLocated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated SrcSpan a -&gt; GenLocated SrcSpan a -&gt; Ordering)
-&gt; [GenLocated SrcSpan a] -&gt; [GenLocated SrcSpan a]
forall a. (a -&gt; a -&gt; Ordering) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#sortBy"><span class="hs-identifier hs-var">sortBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#leftmost_smallest"><span class="hs-identifier hs-var">leftmost_smallest</span></a></span><span> </span><span class="annot"><span class="annottext">(SrcSpan -&gt; SrcSpan -&gt; Ordering)
-&gt; (GenLocated SrcSpan a -&gt; SrcSpan)
-&gt; GenLocated SrcSpan a
-&gt; GenLocated SrcSpan a
-&gt; Ordering
forall b c a. (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c
</span><a href="../../base/src/Data.Function.html#on"><span class="hs-operator hs-var">`on`</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated SrcSpan a -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-298"></span><span>
</span><span id="line-299"></span><span id="local-6989586621680800497"><span class="annot"><a href="GHC.Types.SrcLoc.html#sortRealLocated"><span class="hs-identifier hs-type">sortRealLocated</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier hs-type">RealLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800497"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier hs-type">RealLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800497"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span><span>
</span><span id="line-300"></span><span id="sortRealLocated"><span class="annot"><span class="annottext">sortRealLocated :: forall a. [RealLocated a] -&gt; [RealLocated a]
</span><a href="GHC.Types.SrcLoc.html#sortRealLocated"><span class="hs-identifier hs-var hs-var">sortRealLocated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(GenLocated RealSrcSpan a -&gt; GenLocated RealSrcSpan a -&gt; Ordering)
-&gt; [GenLocated RealSrcSpan a] -&gt; [GenLocated RealSrcSpan a]
forall a. (a -&gt; a -&gt; Ordering) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#sortBy"><span class="hs-identifier hs-var">sortBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-identifier hs-var">compare</span></span><span> </span><span class="annot"><span class="annottext">(RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; (GenLocated RealSrcSpan a -&gt; RealSrcSpan)
-&gt; GenLocated RealSrcSpan a
-&gt; GenLocated RealSrcSpan a
-&gt; Ordering
forall b c a. (b -&gt; b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; a -&gt; c
</span><a href="../../base/src/Data.Function.html#on"><span class="hs-operator hs-var">`on`</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated RealSrcSpan a -&gt; RealSrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span id="local-6989586621680800494"><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcLoc"><span class="hs-identifier hs-type">lookupSrcLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.Internal.html#Map"><span class="hs-identifier hs-type">Map.Map</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800494"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800494"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-303"></span><span id="lookupSrcLoc"><span class="annot"><span class="annottext">lookupSrcLoc :: forall a. SrcLoc -&gt; Map RealSrcLoc a -&gt; Maybe a
</span><a href="GHC.Types.SrcLoc.html#lookupSrcLoc"><span class="hs-identifier hs-var hs-var">lookupSrcLoc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span id="local-6989586621680799816"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799816"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Map RealSrcLoc a -&gt; Maybe a
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799816"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-304"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcLoc"><span class="hs-identifier hs-var">lookupSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe a -&gt; Map RealSrcLoc a -&gt; Maybe a
forall a b. a -&gt; b -&gt; a
</span><a href="../../base/src/GHC.Base.html#const"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe a
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-305"></span><span>
</span><span id="line-306"></span><span id="local-6989586621680800487"><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcSpan"><span class="hs-identifier hs-type">lookupSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.Map.Internal.html#Map"><span class="hs-identifier hs-type">Map.Map</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800487"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800487"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-307"></span><span id="lookupSrcSpan"><span class="annot"><span class="annottext">lookupSrcSpan :: forall a. SrcSpan -&gt; Map RealSrcSpan a -&gt; Maybe a
</span><a href="GHC.Types.SrcLoc.html#lookupSrcSpan"><span class="hs-identifier hs-var hs-var">lookupSrcSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799811"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799811"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Map RealSrcSpan a -&gt; Maybe a
forall k a. Ord k =&gt; k -&gt; Map k a -&gt; Maybe a
</span><a href="../../containers/src/Data.Map.Internal.html#lookup"><span class="hs-identifier hs-var">Map.lookup</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799811"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-308"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#lookupSrcSpan"><span class="hs-identifier hs-var">lookupSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe a -&gt; Map RealSrcSpan a -&gt; Maybe a
forall a b. a -&gt; b -&gt; a
</span><a href="../../base/src/GHC.Base.html#const"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe a
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-309"></span><span>
</span><span id="line-310"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799807"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-311"></span><span>    </span><span id="local-6989586621680799805"><span class="annot"><span class="annottext">ppr :: RealSrcLoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799803"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799803"><span class="hs-identifier hs-var">src_path</span></a></span></span><span> </span><span id="local-6989586621680799802"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799802"><span class="hs-identifier hs-var">src_line</span></a></span></span><span> </span><span id="local-6989586621680799801"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799801"><span class="hs-identifier hs-var">src_col</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-312"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-var">pprFastFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799803"><span class="hs-identifier hs-var">src_path</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-313"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799802"><span class="hs-identifier hs-var">src_line</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-314"></span><span>             </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799801"><span class="hs-identifier hs-var">src_col</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-315"></span><span>
</span><span id="line-316"></span><span class="hs-comment">-- I don't know why there is this style-based difference</span><span>
</span><span id="line-317"></span><span class="hs-comment">--        if userStyle sty || debugStyle sty then</span><span>
</span><span id="line-318"></span><span class="hs-comment">--            hcat [ pprFastFilePath src_path, char ':',</span><span>
</span><span id="line-319"></span><span class="hs-comment">--                   int src_line,</span><span>
</span><span id="line-320"></span><span class="hs-comment">--                   char ':', int src_col</span><span>
</span><span id="line-321"></span><span class="hs-comment">--                 ]</span><span>
</span><span id="line-322"></span><span class="hs-comment">--        else</span><span>
</span><span id="line-323"></span><span class="hs-comment">--            hcat [text &quot;{-# LINE &quot;, int src_line, space,</span><span>
</span><span id="line-324"></span><span class="hs-comment">--                  char '\&quot;', pprFastFilePath src_path, text &quot; #-}&quot;]</span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799793"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-327"></span><span>    </span><span id="local-6989586621680799791"><span class="annot"><span class="annottext">ppr :: SrcLoc -&gt; SDoc
</span><a href="#local-6989586621680799791"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span id="local-6989586621680799790"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799790"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799790"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-328"></span><span>    </span><span class="annot"><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span id="local-6989586621680799789"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799789"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799789"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-329"></span><span>
</span><span id="line-330"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799761"><span id="local-6989586621680799763"><span id="local-6989586621680799765"><span id="local-6989586621680799767"><span id="local-6989586621680799769"><span id="local-6989586621680799771"><span id="local-6989586621680799773"><span id="local-6989586621680799775"><span id="local-6989586621680799777"><span id="local-6989586621680799779"><span id="local-6989586621680799784"><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span></span></span></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-331"></span><span>  </span><span class="hs-comment">-- don't traverse?</span><span>
</span><span id="line-332"></span><span>  </span><span id="local-6989586621680799759"><span class="annot"><span class="annottext">toConstr :: RealSrcSpan -&gt; Constr
</span><a href="../../base/src/Data.Data.html#toConstr"><span class="hs-identifier hs-var hs-var hs-var hs-var">toConstr</span></a></span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr
</span><a href="GHC.Utils.Misc.html#abstractConstr"><span class="hs-identifier hs-var">abstractConstr</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;RealSrcSpan&quot;</span></span><span>
</span><span id="line-333"></span><span>  </span><span id="local-6989586621680799754"><span class="annot"><span class="annottext">gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c RealSrcSpan
</span><a href="../../base/src/Data.Data.html#gunfold"><span class="hs-identifier hs-var hs-var hs-var hs-var">gunfold</span></a></span></span><span> </span><span class="annot"><span class="annottext">forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">forall r. r -&gt; c r
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr -&gt; c RealSrcSpan
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;gunfold&quot;</span></span><span>
</span><span id="line-334"></span><span>  </span><span id="local-6989586621680799751"><span class="annot"><span class="annottext">dataTypeOf :: RealSrcSpan -&gt; DataType
</span><a href="../../base/src/Data.Data.html#dataTypeOf"><span class="hs-identifier hs-var hs-var hs-var hs-var">dataTypeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; DataType
</span><a href="../../base/src/Data.Data.html#mkNoRepType"><span class="hs-identifier hs-var">mkNoRepType</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;RealSrcSpan&quot;</span></span><span>
</span><span id="line-335"></span><span>
</span><span id="line-336"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799722"><span id="local-6989586621680799724"><span id="local-6989586621680799726"><span id="local-6989586621680799728"><span id="local-6989586621680799730"><span id="local-6989586621680799732"><span id="local-6989586621680799734"><span id="local-6989586621680799736"><span id="local-6989586621680799738"><span id="local-6989586621680799740"><span id="local-6989586621680799745"><span class="annot"><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-type">Data</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span></span></span></span></span></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-337"></span><span>  </span><span class="hs-comment">-- don't traverse?</span><span>
</span><span id="line-338"></span><span>  </span><span id="local-6989586621680799721"><span class="annot"><span class="annottext">toConstr :: SrcSpan -&gt; Constr
</span><a href="#local-6989586621680799721"><span class="hs-identifier hs-var hs-var hs-var hs-var">toConstr</span></a></span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr
</span><a href="GHC.Utils.Misc.html#abstractConstr"><span class="hs-identifier hs-var">abstractConstr</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcSpan&quot;</span></span><span>
</span><span id="line-339"></span><span>  </span><span id="local-6989586621680799718"><span class="annot"><span class="annottext">gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c SrcSpan
</span><a href="#local-6989586621680799718"><span class="hs-identifier hs-var hs-var hs-var hs-var">gunfold</span></a></span></span><span> </span><span class="annot"><span class="annottext">forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">forall r. r -&gt; c r
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Constr -&gt; c SrcSpan
forall a. HasCallStack =&gt; String -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;gunfold&quot;</span></span><span>
</span><span id="line-340"></span><span>  </span><span id="local-6989586621680799717"><span class="annot"><span class="annottext">dataTypeOf :: SrcSpan -&gt; DataType
</span><a href="#local-6989586621680799717"><span class="hs-identifier hs-var hs-var hs-var hs-var">dataTypeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; DataType
</span><a href="../../base/src/Data.Data.html#mkNoRepType"><span class="hs-identifier hs-var">mkNoRepType</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcSpan&quot;</span></span><span>
</span><span id="line-341"></span><span>
</span><span id="line-342"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcSpan]{Source Spans}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-349"></span><span>
</span><span id="line-350"></span><span class="hs-comment">{- |
A 'RealSrcSpan' delimits a portion of a text file.  It could be represented
by a pair of (line,column) coordinates, but in fact we optimise
slightly by using more compact representations for single-line and
zero-length spans, both of which are quite common.

The end position is defined to be the column /after/ the end of the
span.  That is, a span of (1,1)-(1,2) is one character long, and a
span of (1,1)-(1,1) is zero characters long.
-}</span><span>
</span><span id="line-360"></span><span>
</span><span id="line-361"></span><span class="hs-comment">-- | Real Source Span</span><span>
</span><span id="line-362"></span><span class="hs-keyword">data</span><span> </span><span id="RealSrcSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span></span><span>
</span><span id="line-363"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="RealSrcSpan%27"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-var">RealSrcSpan'</span></a></span></span><span>
</span><span id="line-364"></span><span>        </span><span class="hs-special">{</span><span> </span><span id="srcSpanFile"><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-365"></span><span>          </span><span id="srcSpanSLine"><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanSLine"><span class="hs-identifier hs-var hs-var">srcSpanSLine</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span>
</span><span id="line-366"></span><span>          </span><span id="srcSpanSCol"><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanSCol"><span class="hs-identifier hs-var hs-var">srcSpanSCol</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span>
</span><span id="line-367"></span><span>          </span><span id="srcSpanELine"><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanELine"><span class="hs-identifier hs-var hs-var">srcSpanELine</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span>
</span><span id="line-368"></span><span>          </span><span id="srcSpanECol"><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanECol"><span class="hs-identifier hs-var hs-var">srcSpanECol</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-369"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-370"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span id="local-6989586621680799703"><span id="local-6989586621680799710"><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
(RealSrcSpan -&gt; RealSrcSpan -&gt; Bool)
-&gt; (RealSrcSpan -&gt; RealSrcSpan -&gt; Bool) -&gt; Eq RealSrcSpan
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
$c/= :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
== :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
$c== :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span>
</span><span id="line-371"></span><span>
</span><span id="line-372"></span><span class="hs-comment">-- | StringBuffer Source Span</span><span>
</span><span id="line-373"></span><span class="hs-keyword">data</span><span> </span><span id="BufSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-374"></span><span>  </span><span id="BufSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="bufSpanStart"><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span></span><span class="hs-special">,</span><span> </span><span id="bufSpanEnd"><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanEnd"><span class="hs-identifier hs-var hs-var">bufSpanEnd</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-pragma">{-# UNPACK</span><span> </span><span class="hs-pragma">#-}</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-375"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799694"><span id="local-6989586621680799698"><span class="annot"><span class="annottext">BufSpan -&gt; BufSpan -&gt; Bool
(BufSpan -&gt; BufSpan -&gt; Bool)
-&gt; (BufSpan -&gt; BufSpan -&gt; Bool) -&gt; Eq BufSpan
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: BufSpan -&gt; BufSpan -&gt; Bool
$c/= :: BufSpan -&gt; BufSpan -&gt; Bool
== :: BufSpan -&gt; BufSpan -&gt; Bool
$c== :: BufSpan -&gt; BufSpan -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799671"><span id="local-6989586621680799673"><span id="local-6989586621680799676"><span id="local-6989586621680799679"><span id="local-6989586621680799682"><span id="local-6989586621680799686"><span id="local-6989586621680799690"><span class="annot"><span class="annottext">Eq BufSpan
Eq BufSpan
-&gt; (BufSpan -&gt; BufSpan -&gt; Ordering)
-&gt; (BufSpan -&gt; BufSpan -&gt; Bool)
-&gt; (BufSpan -&gt; BufSpan -&gt; Bool)
-&gt; (BufSpan -&gt; BufSpan -&gt; Bool)
-&gt; (BufSpan -&gt; BufSpan -&gt; Bool)
-&gt; (BufSpan -&gt; BufSpan -&gt; BufSpan)
-&gt; (BufSpan -&gt; BufSpan -&gt; BufSpan)
-&gt; Ord BufSpan
BufSpan -&gt; BufSpan -&gt; Bool
BufSpan -&gt; BufSpan -&gt; Ordering
BufSpan -&gt; BufSpan -&gt; BufSpan
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: BufSpan -&gt; BufSpan -&gt; BufSpan
$cmin :: BufSpan -&gt; BufSpan -&gt; BufSpan
max :: BufSpan -&gt; BufSpan -&gt; BufSpan
$cmax :: BufSpan -&gt; BufSpan -&gt; BufSpan
&gt;= :: BufSpan -&gt; BufSpan -&gt; Bool
$c&gt;= :: BufSpan -&gt; BufSpan -&gt; Bool
&gt; :: BufSpan -&gt; BufSpan -&gt; Bool
$c&gt; :: BufSpan -&gt; BufSpan -&gt; Bool
&lt;= :: BufSpan -&gt; BufSpan -&gt; Bool
$c&lt;= :: BufSpan -&gt; BufSpan -&gt; Bool
&lt; :: BufSpan -&gt; BufSpan -&gt; Bool
$c&lt; :: BufSpan -&gt; BufSpan -&gt; Bool
compare :: BufSpan -&gt; BufSpan -&gt; Ordering
$ccompare :: BufSpan -&gt; BufSpan -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799662"><span id="local-6989586621680799664"><span id="local-6989586621680799669"><span class="annot"><span class="annottext">Int -&gt; BufSpan -&gt; ShowS
[BufSpan] -&gt; ShowS
BufSpan -&gt; String
(Int -&gt; BufSpan -&gt; ShowS)
-&gt; (BufSpan -&gt; String) -&gt; ([BufSpan] -&gt; ShowS) -&gt; Show BufSpan
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [BufSpan] -&gt; ShowS
$cshowList :: [BufSpan] -&gt; ShowS
show :: BufSpan -&gt; String
$cshow :: BufSpan -&gt; String
showsPrec :: Int -&gt; BufSpan -&gt; ShowS
$cshowsPrec :: Int -&gt; BufSpan -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-376"></span><span>
</span><span id="line-377"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799657"><span id="local-6989586621680799659"><span class="annot"><a href="../../base/src/GHC.Base.html#Semigroup"><span class="hs-identifier hs-type">Semigroup</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-378"></span><span>  </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span> </span><span id="local-6989586621680799653"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799653"><span class="hs-identifier hs-var">start1</span></a></span></span><span> </span><span id="local-6989586621680799652"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799652"><span class="hs-identifier hs-var">end1</span></a></span></span><span> </span><span id="local-6989586621680799651"><span class="annot"><span class="annottext">&lt;&gt; :: BufSpan -&gt; BufSpan -&gt; BufSpan
</span><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator hs-var hs-var hs-var hs-var">&lt;&gt;</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span> </span><span id="local-6989586621680799650"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799650"><span class="hs-identifier hs-var">start2</span></a></span></span><span> </span><span id="local-6989586621680799649"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799649"><span class="hs-identifier hs-var">end2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-379"></span><span>    </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufPos
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">min</span></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799653"><span class="hs-identifier hs-var">start1</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799650"><span class="hs-identifier hs-var">start2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufPos
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">max</span></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799652"><span class="hs-identifier hs-var">end1</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799649"><span class="hs-identifier hs-var">end2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-380"></span><span>
</span><span id="line-381"></span><span class="hs-comment">-- | Source Span</span><span>
</span><span id="line-382"></span><span class="hs-comment">--</span><span>
</span><span id="line-383"></span><span class="hs-comment">-- A 'SrcSpan' identifies either a specific portion of a text file</span><span>
</span><span id="line-384"></span><span class="hs-comment">-- or a human-readable description of a location.</span><span>
</span><span id="line-385"></span><span class="hs-keyword">data</span><span> </span><span id="SrcSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-var">SrcSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-386"></span><span>    </span><span id="RealSrcSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">!</span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span class="hs-special">)</span><span>  </span><span class="hs-comment">-- See Note [Why Maybe BufPos]</span><span>
</span><span id="line-387"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span></span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier hs-type">UnhelpfulSpanReason</span></a></span><span>
</span><span id="line-388"></span><span>
</span><span id="line-389"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799639"><span id="local-6989586621680799645"><span class="annot"><span class="annottext">SrcSpan -&gt; SrcSpan -&gt; Bool
(SrcSpan -&gt; SrcSpan -&gt; Bool)
-&gt; (SrcSpan -&gt; SrcSpan -&gt; Bool) -&gt; Eq SrcSpan
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: SrcSpan -&gt; SrcSpan -&gt; Bool
$c/= :: SrcSpan -&gt; SrcSpan -&gt; Bool
== :: SrcSpan -&gt; SrcSpan -&gt; Bool
$c== :: SrcSpan -&gt; SrcSpan -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799627"><span id="local-6989586621680799629"><span id="local-6989586621680799637"><span class="annot"><span class="annottext">Int -&gt; SrcSpan -&gt; ShowS
[SrcSpan] -&gt; ShowS
SrcSpan -&gt; String
(Int -&gt; SrcSpan -&gt; ShowS)
-&gt; (SrcSpan -&gt; String) -&gt; ([SrcSpan] -&gt; ShowS) -&gt; Show SrcSpan
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [SrcSpan] -&gt; ShowS
$cshowList :: [SrcSpan] -&gt; ShowS
show :: SrcSpan -&gt; String
$cshow :: SrcSpan -&gt; String
showsPrec :: Int -&gt; SrcSpan -&gt; ShowS
$cshowsPrec :: Int -&gt; SrcSpan -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- Show is used by GHC.Parser.Lexer, because we</span><span>
</span><span id="line-390"></span><span>                      </span><span class="hs-comment">-- derive Show for Token</span><span>
</span><span id="line-391"></span><span>
</span><span id="line-392"></span><span class="hs-keyword">data</span><span> </span><span id="UnhelpfulSpanReason"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier hs-var">UnhelpfulSpanReason</span></a></span></span><span>
</span><span id="line-393"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="UnhelpfulNoLocationInfo"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulNoLocationInfo"><span class="hs-identifier hs-var">UnhelpfulNoLocationInfo</span></a></span></span><span>
</span><span id="line-394"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulWiredIn"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulWiredIn"><span class="hs-identifier hs-var">UnhelpfulWiredIn</span></a></span></span><span>
</span><span id="line-395"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulInteractive"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulInteractive"><span class="hs-identifier hs-var">UnhelpfulInteractive</span></a></span></span><span>
</span><span id="line-396"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulGenerated"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulGenerated"><span class="hs-identifier hs-var">UnhelpfulGenerated</span></a></span></span><span>
</span><span id="line-397"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="UnhelpfulOther"><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span></span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-398"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799617"><span id="local-6989586621680799620"><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool
(UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool)
-&gt; (UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool)
-&gt; Eq UnhelpfulSpanReason
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool
$c/= :: UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool
== :: UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool
$c== :: UnhelpfulSpanReason -&gt; UnhelpfulSpanReason -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799609"><span id="local-6989586621680799611"><span id="local-6989586621680799615"><span class="annot"><span class="annottext">Int -&gt; UnhelpfulSpanReason -&gt; ShowS
[UnhelpfulSpanReason] -&gt; ShowS
UnhelpfulSpanReason -&gt; String
(Int -&gt; UnhelpfulSpanReason -&gt; ShowS)
-&gt; (UnhelpfulSpanReason -&gt; String)
-&gt; ([UnhelpfulSpanReason] -&gt; ShowS)
-&gt; Show UnhelpfulSpanReason
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [UnhelpfulSpanReason] -&gt; ShowS
$cshowList :: [UnhelpfulSpanReason] -&gt; ShowS
show :: UnhelpfulSpanReason -&gt; String
$cshow :: UnhelpfulSpanReason -&gt; String
showsPrec :: Int -&gt; UnhelpfulSpanReason -&gt; ShowS
$cshowsPrec :: Int -&gt; UnhelpfulSpanReason -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span>
</span><span id="line-400"></span><span class="hs-comment">{- Note [Why Maybe BufPos]
~~~~~~~~~~~~~~~~~~~~~~~~~~
In SrcLoc we store (Maybe BufPos); in SrcSpan we store (Maybe BufSpan).
Why the Maybe?

Surely, the lexer can always fill in the buffer position, and it guarantees to do so.
However, sometimes the SrcLoc/SrcSpan is constructed in a different context
where the buffer location is not available, and then we use Nothing instead of
a fake value like BufPos (-1).

Perhaps the compiler could be re-engineered to pass around BufPos more
carefully and never discard it, and this 'Maybe' could be removed. If you're
interested in doing so, you may find this ripgrep query useful:

  rg &quot;RealSrc(Loc|Span).*?Nothing&quot;

For example, it is not uncommon to whip up source locations for e.g. error
messages, constructing a SrcSpan without a BufSpan.
-}</span><span>
</span><span id="line-419"></span><span>
</span><span id="line-420"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Utils.Json.html#ToJson"><span class="hs-identifier hs-type">ToJson</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-421"></span><span>  </span><span id="local-6989586621680799603"><span class="annot"><span class="annottext">json :: SrcSpan -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#json"><span class="hs-identifier hs-var hs-var hs-var hs-var">json</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">JsonDoc
</span><a href="GHC.Utils.Json.html#JSNull"><span class="hs-identifier hs-var">JSNull</span></a></span><span> </span><span class="hs-comment">--JSObject [( &quot;type&quot;, &quot;unhelpful&quot;)]</span><span>
</span><span id="line-422"></span><span>  </span><span class="annot"><a href="GHC.Utils.Json.html#json"><span class="hs-identifier hs-var">json</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799600"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799600"><span class="hs-identifier hs-var">rss</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; JsonDoc
forall a. ToJson a =&gt; a -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#json"><span class="hs-identifier hs-var">json</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799600"><span class="hs-identifier hs-var">rss</span></a></span><span>
</span><span id="line-423"></span><span>
</span><span id="line-424"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="GHC.Utils.Json.html#ToJson"><span class="hs-identifier hs-type">ToJson</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-425"></span><span>  </span><span id="local-6989586621680799598"><span class="annot"><span class="annottext">json :: RealSrcSpan -&gt; JsonDoc
</span><a href="#local-6989586621680799598"><span class="hs-identifier hs-var hs-var hs-var hs-var">json</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span class="hs-special">{</span><span id="local-6989586621680799593"><span id="local-6989586621680799594"><span id="local-6989586621680799595"><span id="local-6989586621680799596"><span id="local-6989586621680799597"><span class="annot"><span class="annottext">Int
FastString
srcSpanECol :: Int
srcSpanELine :: Int
srcSpanSCol :: Int
srcSpanSLine :: Int
srcSpanFile :: FastString
srcSpanECol :: RealSrcSpan -&gt; Int
srcSpanELine :: RealSrcSpan -&gt; Int
srcSpanSCol :: RealSrcSpan -&gt; Int
srcSpanSLine :: RealSrcSpan -&gt; Int
srcSpanFile :: RealSrcSpan -&gt; FastString
</span><a href="#local-6989586621680799593"><span class="hs-glyph hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">..</span></a></span></span></span></span></span></span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(String, JsonDoc)] -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSObject"><span class="hs-identifier hs-var">JSObject</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;file&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSString"><span class="hs-identifier hs-var">JSString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; String
</span><a href="GHC.Data.FastString.html#unpackFS"><span class="hs-identifier hs-var">unpackFS</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799597"><span class="hs-identifier hs-var">srcSpanFile</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-426"></span><span>                                     </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;startLine&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSInt"><span class="hs-identifier hs-var">JSInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799596"><span class="hs-identifier hs-var">srcSpanSLine</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-427"></span><span>                                     </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;startCol&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSInt"><span class="hs-identifier hs-var">JSInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799595"><span class="hs-identifier hs-var">srcSpanSCol</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-428"></span><span>                                     </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;endLine&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSInt"><span class="hs-identifier hs-var">JSInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799594"><span class="hs-identifier hs-var">srcSpanELine</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-429"></span><span>                                     </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;endCol&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; JsonDoc
</span><a href="GHC.Utils.Json.html#JSInt"><span class="hs-identifier hs-var">JSInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799593"><span class="hs-identifier hs-var">srcSpanECol</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-430"></span><span>                                     </span><span class="hs-special">]</span><span>
</span><span id="line-431"></span><span>
</span><span id="line-432"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#NFData"><span class="hs-identifier hs-type">NFData</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-433"></span><span>  </span><span id="local-6989586621680799585"><span class="annot"><span class="annottext">rnf :: SrcSpan -&gt; ()
</span><a href="../../deepseq/src/Control.DeepSeq.html#rnf"><span class="hs-identifier hs-var hs-var hs-var hs-var">rnf</span></a></span></span><span> </span><span id="local-6989586621680799583"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799583"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799583"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; () -&gt; ()
</span><span class="hs-operator hs-var">`seq`</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-434"></span><span>
</span><span id="line-435"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier hs-type">getBufSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span>
</span><span id="line-436"></span><span id="getBufSpan"><span class="annot"><span class="annottext">getBufSpan :: SrcSpan -&gt; Maybe BufSpan
</span><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier hs-var hs-var">getBufSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799582"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799582"><span class="hs-identifier hs-var">mbspan</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799582"><span class="hs-identifier hs-var">mbspan</span></a></span><span>
</span><span id="line-437"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier hs-var">getBufSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-438"></span><span>
</span><span id="line-439"></span><span class="hs-comment">-- | Built-in &quot;bad&quot; 'SrcSpan's for common sources of location uncertainty</span><span>
</span><span id="line-440"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-type">noSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#generatedSrcSpan"><span class="hs-identifier hs-type">generatedSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#wiredInSrcSpan"><span class="hs-identifier hs-type">wiredInSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#interactiveSrcSpan"><span class="hs-identifier hs-type">interactiveSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-441"></span><span id="noSrcSpan"><span class="annot"><span class="annottext">noSrcSpan :: SrcSpan
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var hs-var">noSrcSpan</span></a></span></span><span>          </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulNoLocationInfo"><span class="hs-identifier hs-var">UnhelpfulNoLocationInfo</span></a></span><span>
</span><span id="line-442"></span><span id="wiredInSrcSpan"><span class="annot"><span class="annottext">wiredInSrcSpan :: SrcSpan
</span><a href="GHC.Types.SrcLoc.html#wiredInSrcSpan"><span class="hs-identifier hs-var hs-var">wiredInSrcSpan</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulWiredIn"><span class="hs-identifier hs-var">UnhelpfulWiredIn</span></a></span><span>
</span><span id="line-443"></span><span id="interactiveSrcSpan"><span class="annot"><span class="annottext">interactiveSrcSpan :: SrcSpan
</span><a href="GHC.Types.SrcLoc.html#interactiveSrcSpan"><span class="hs-identifier hs-var hs-var">interactiveSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulInteractive"><span class="hs-identifier hs-var">UnhelpfulInteractive</span></a></span><span>
</span><span id="line-444"></span><span id="generatedSrcSpan"><span class="annot"><span class="annottext">generatedSrcSpan :: SrcSpan
</span><a href="GHC.Types.SrcLoc.html#generatedSrcSpan"><span class="hs-identifier hs-var hs-var">generatedSrcSpan</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulGenerated"><span class="hs-identifier hs-var">UnhelpfulGenerated</span></a></span><span>
</span><span id="line-445"></span><span>
</span><span id="line-446"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGeneratedSrcSpan"><span class="hs-identifier hs-type">isGeneratedSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-447"></span><span id="isGeneratedSrcSpan"><span class="annot"><span class="annottext">isGeneratedSrcSpan :: SrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isGeneratedSrcSpan"><span class="hs-identifier hs-var hs-var">isGeneratedSrcSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulGenerated"><span class="hs-identifier hs-var">UnhelpfulGenerated</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-448"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGeneratedSrcSpan"><span class="hs-identifier hs-var">isGeneratedSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span>                                  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-449"></span><span>
</span><span id="line-450"></span><span class="hs-comment">-- | Create a &quot;bad&quot; 'SrcSpan' that has not location information</span><span>
</span><span id="line-451"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralSrcSpan"><span class="hs-identifier hs-type">mkGeneralSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-452"></span><span id="mkGeneralSrcSpan"><span class="annot"><span class="annottext">mkGeneralSrcSpan :: FastString -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkGeneralSrcSpan"><span class="hs-identifier hs-var hs-var">mkGeneralSrcSpan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">(UnhelpfulSpanReason -&gt; SrcSpan)
-&gt; (FastString -&gt; UnhelpfulSpanReason) -&gt; FastString -&gt; SrcSpan
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span><span>
</span><span id="line-453"></span><span>
</span><span id="line-454"></span><span class="hs-comment">-- | Create a 'SrcSpan' corresponding to a single point</span><span>
</span><span id="line-455"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocSpan"><span class="hs-identifier hs-type">srcLocSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-456"></span><span id="srcLocSpan"><span class="annot"><span class="annottext">srcLocSpan :: SrcLoc -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#srcLocSpan"><span class="hs-identifier hs-var hs-var">srcLocSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span id="local-6989586621680799580"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799580"><span class="hs-identifier hs-var">str</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799580"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-457"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcLocSpan"><span class="hs-identifier hs-var">srcLocSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span id="local-6989586621680799579"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799579"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680799578"><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799578"><span class="hs-identifier hs-var">mb</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe BufSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#realSrcLocSpan"><span class="hs-identifier hs-var">realSrcLocSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799579"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufPos -&gt; BufSpan) -&gt; Maybe BufPos -&gt; Maybe BufSpan
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621680799577"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799577"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799577"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799577"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799578"><span class="hs-identifier hs-var">mb</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-458"></span><span>
</span><span id="line-459"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcLocSpan"><span class="hs-identifier hs-type">realSrcLocSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-460"></span><span id="realSrcLocSpan"><span class="annot"><span class="annottext">realSrcLocSpan :: RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#realSrcLocSpan"><span class="hs-identifier hs-var hs-var">realSrcLocSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799576"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799576"><span class="hs-identifier hs-var">file</span></a></span></span><span> </span><span id="local-6989586621680799575"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799575"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621680799574"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799574"><span class="hs-identifier hs-var">col</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; Int -&gt; Int -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-var">RealSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799576"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799575"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799574"><span class="hs-identifier hs-var">col</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799575"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799574"><span class="hs-identifier hs-var">col</span></a></span><span>
</span><span id="line-461"></span><span>
</span><span id="line-462"></span><span class="hs-comment">-- | Create a 'SrcSpan' between two points in a file</span><span>
</span><span id="line-463"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier hs-type">mkRealSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-464"></span><span id="mkRealSrcSpan"><span class="annot"><span class="annottext">mkRealSrcSpan :: RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier hs-var hs-var">mkRealSrcSpan</span></a></span></span><span> </span><span id="local-6989586621680799573"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799573"><span class="hs-identifier hs-var">loc1</span></a></span></span><span> </span><span id="local-6989586621680799572"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799572"><span class="hs-identifier hs-var">loc2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; Int -&gt; Int -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-var">RealSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799571"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799570"><span class="hs-identifier hs-var">line1</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799569"><span class="hs-identifier hs-var">col1</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799568"><span class="hs-identifier hs-var">line2</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799567"><span class="hs-identifier hs-var">col2</span></a></span><span>
</span><span id="line-465"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-466"></span><span>        </span><span id="local-6989586621680799570"><span class="annot"><span class="annottext">line1 :: Int
</span><a href="#local-6989586621680799570"><span class="hs-identifier hs-var hs-var">line1</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocLine"><span class="hs-identifier hs-var">srcLocLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799573"><span class="hs-identifier hs-var">loc1</span></a></span><span>
</span><span id="line-467"></span><span>        </span><span id="local-6989586621680799568"><span class="annot"><span class="annottext">line2 :: Int
</span><a href="#local-6989586621680799568"><span class="hs-identifier hs-var hs-var">line2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocLine"><span class="hs-identifier hs-var">srcLocLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799572"><span class="hs-identifier hs-var">loc2</span></a></span><span>
</span><span id="line-468"></span><span>        </span><span id="local-6989586621680799569"><span class="annot"><span class="annottext">col1 :: Int
</span><a href="#local-6989586621680799569"><span class="hs-identifier hs-var hs-var">col1</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocCol"><span class="hs-identifier hs-var">srcLocCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799573"><span class="hs-identifier hs-var">loc1</span></a></span><span>
</span><span id="line-469"></span><span>        </span><span id="local-6989586621680799567"><span class="annot"><span class="annottext">col2 :: Int
</span><a href="#local-6989586621680799567"><span class="hs-identifier hs-var hs-var">col2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcLocCol"><span class="hs-identifier hs-var">srcLocCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799572"><span class="hs-identifier hs-var">loc2</span></a></span><span>
</span><span id="line-470"></span><span>        </span><span id="local-6989586621680799571"><span class="annot"><span class="annottext">file :: FastString
</span><a href="#local-6989586621680799571"><span class="hs-identifier hs-var hs-var">file</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcLocFile"><span class="hs-identifier hs-var">srcLocFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799573"><span class="hs-identifier hs-var">loc1</span></a></span><span>
</span><span id="line-471"></span><span>
</span><span id="line-472"></span><span class="hs-comment">-- | 'True' if the span is known to straddle only one line.</span><span>
</span><span id="line-473"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isOneLineRealSpan"><span class="hs-identifier hs-type">isOneLineRealSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-474"></span><span id="isOneLineRealSpan"><span class="annot"><span class="annottext">isOneLineRealSpan :: RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isOneLineRealSpan"><span class="hs-identifier hs-var hs-var">isOneLineRealSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799565"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799565"><span class="hs-identifier hs-var">line1</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799564"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799564"><span class="hs-identifier hs-var">line2</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-475"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799565"><span class="hs-identifier hs-var">line1</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799564"><span class="hs-identifier hs-var">line2</span></a></span><span>
</span><span id="line-476"></span><span>
</span><span id="line-477"></span><span class="hs-comment">-- | 'True' if the span is a single point</span><span>
</span><span id="line-478"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isPointRealSpan"><span class="hs-identifier hs-type">isPointRealSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-479"></span><span id="isPointRealSpan"><span class="annot"><span class="annottext">isPointRealSpan :: RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isPointRealSpan"><span class="hs-identifier hs-var hs-var">isPointRealSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799562"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799562"><span class="hs-identifier hs-var">line1</span></a></span></span><span> </span><span id="local-6989586621680799561"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799561"><span class="hs-identifier hs-var">col1</span></a></span></span><span> </span><span id="local-6989586621680799560"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799560"><span class="hs-identifier hs-var">line2</span></a></span></span><span> </span><span id="local-6989586621680799559"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799559"><span class="hs-identifier hs-var">col2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-480"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799562"><span class="hs-identifier hs-var">line1</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799560"><span class="hs-identifier hs-var">line2</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799561"><span class="hs-identifier hs-var">col1</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799559"><span class="hs-identifier hs-var">col2</span></a></span><span>
</span><span id="line-481"></span><span>
</span><span id="line-482"></span><span class="hs-comment">-- | Create a 'SrcSpan' between two points in a file</span><span>
</span><span id="line-483"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpan"><span class="hs-identifier hs-type">mkSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-484"></span><span id="mkSrcSpan"><span class="annot"><span class="annottext">mkSrcSpan :: SrcLoc -&gt; SrcLoc -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkSrcSpan"><span class="hs-identifier hs-var hs-var">mkSrcSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span id="local-6989586621680799557"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799557"><span class="hs-identifier hs-var">str</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SrcLoc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799557"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-485"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpan"><span class="hs-identifier hs-var">mkSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcLoc
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-type">UnhelpfulLoc</span></a></span><span> </span><span id="local-6989586621680799556"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799556"><span class="hs-identifier hs-var">str</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799556"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-486"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpan"><span class="hs-identifier hs-var">mkSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span id="local-6989586621680799555"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799555"><span class="hs-identifier hs-var">loc1</span></a></span></span><span> </span><span id="local-6989586621680799554"><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799554"><span class="hs-identifier hs-var">mbpos1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span> </span><span id="local-6989586621680799553"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799553"><span class="hs-identifier hs-var">loc2</span></a></span></span><span> </span><span id="local-6989586621680799552"><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799552"><span class="hs-identifier hs-var">mbpos2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-487"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe BufSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier hs-var">mkRealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799555"><span class="hs-identifier hs-var">loc1</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799553"><span class="hs-identifier hs-var">loc2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufPos -&gt; BufPos -&gt; BufSpan)
-&gt; Maybe BufPos -&gt; Maybe BufPos -&gt; Maybe BufSpan
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="../../base/src/GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799554"><span class="hs-identifier hs-var">mbpos1</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufPos
</span><a href="#local-6989586621680799552"><span class="hs-identifier hs-var">mbpos2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-488"></span><span>
</span><span id="line-489"></span><span class="hs-comment">-- | Combines two 'SrcSpan' into one that spans at least all the characters</span><span>
</span><span id="line-490"></span><span class="hs-comment">-- within both spans. Returns UnhelpfulSpan if the files differ.</span><span>
</span><span id="line-491"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-type">combineSrcSpans</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-492"></span><span id="combineSrcSpans"><span class="annot"><span class="annottext">combineSrcSpans :: SrcSpan -&gt; SrcSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var hs-var">combineSrcSpans</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680799551"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799551"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799551"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-comment">-- this seems more useful</span><span>
</span><span id="line-493"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var">combineSrcSpans</span></a></span><span> </span><span id="local-6989586621680799550"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799550"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799550"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-494"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var">combineSrcSpans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799549"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799549"><span class="hs-identifier hs-var">span1</span></a></span></span><span> </span><span id="local-6989586621680799548"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799548"><span class="hs-identifier hs-var">mbspan1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799547"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799547"><span class="hs-identifier hs-var">span2</span></a></span></span><span> </span><span id="local-6989586621680799546"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799546"><span class="hs-identifier hs-var">mbspan2</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-495"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799549"><span class="hs-identifier hs-var">span1</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799547"><span class="hs-identifier hs-var">span2</span></a></span><span>
</span><span id="line-496"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe BufSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineRealSrcSpans"><span class="hs-identifier hs-var">combineRealSrcSpans</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799549"><span class="hs-identifier hs-var">span1</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799547"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufSpan -&gt; BufSpan -&gt; BufSpan)
-&gt; Maybe BufSpan -&gt; Maybe BufSpan -&gt; Maybe BufSpan
forall (f :: * -&gt; *) a b c.
Applicative f =&gt;
(a -&gt; b -&gt; c) -&gt; f a -&gt; f b -&gt; f c
</span><a href="../../base/src/GHC.Base.html#liftA2"><span class="hs-identifier hs-var">liftA2</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufSpan -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#combineBufSpans"><span class="hs-identifier hs-var">combineBufSpans</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799548"><span class="hs-identifier hs-var">mbspan1</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799546"><span class="hs-identifier hs-var">mbspan2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-497"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-var">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">(UnhelpfulSpanReason -&gt; SrcSpan) -&gt; UnhelpfulSpanReason -&gt; SrcSpan
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-498"></span><span>      </span><span class="annot"><span class="annottext">FastString -&gt; UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-var">UnhelpfulOther</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;combineSrcSpans: files differ&gt;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-499"></span><span>
</span><span id="line-500"></span><span class="hs-comment">-- | Combines two 'SrcSpan' into one that spans at least all the characters</span><span>
</span><span id="line-501"></span><span class="hs-comment">-- within both spans. Assumes the &quot;file&quot; part is the same in both inputs</span><span>
</span><span id="line-502"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineRealSrcSpans"><span class="hs-identifier hs-type">combineRealSrcSpans</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-503"></span><span id="combineRealSrcSpans"><span class="annot"><span class="annottext">combineRealSrcSpans :: RealSrcSpan -&gt; RealSrcSpan -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineRealSrcSpans"><span class="hs-identifier hs-var hs-var">combineRealSrcSpans</span></a></span></span><span> </span><span id="local-6989586621680799543"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span></span><span> </span><span id="local-6989586621680799542"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799542"><span class="hs-identifier hs-var">span2</span></a></span></span><span>
</span><span id="line-504"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; Int -&gt; Int -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-var">RealSrcSpan'</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799541"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799540"><span class="hs-identifier hs-var">line_start</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799539"><span class="hs-identifier hs-var">col_start</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799538"><span class="hs-identifier hs-var">line_end</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799537"><span class="hs-identifier hs-var">col_end</span></a></span><span>
</span><span id="line-505"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-506"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621680799540"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799540"><span class="hs-identifier hs-var">line_start</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799539"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799539"><span class="hs-identifier hs-var">col_start</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int) -&gt; (Int, Int) -&gt; (Int, Int)
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">min</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-507"></span><span>                                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799542"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799542"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-508"></span><span>    </span><span class="hs-special">(</span><span id="local-6989586621680799538"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799538"><span class="hs-identifier hs-var">line_end</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799537"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799537"><span class="hs-identifier hs-var">col_end</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int, Int) -&gt; (Int, Int) -&gt; (Int, Int)
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">max</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-509"></span><span>                                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799542"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799542"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-510"></span><span>    </span><span id="local-6989586621680799541"><span class="annot"><span class="annottext">file :: FastString
</span><a href="#local-6989586621680799541"><span class="hs-identifier hs-var hs-var">file</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799543"><span class="hs-identifier hs-var">span1</span></a></span><span>
</span><span id="line-511"></span><span>
</span><span id="line-512"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#combineBufSpans"><span class="hs-identifier hs-type">combineBufSpans</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span>
</span><span id="line-513"></span><span id="combineBufSpans"><span class="annot"><span class="annottext">combineBufSpans :: BufSpan -&gt; BufSpan -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#combineBufSpans"><span class="hs-identifier hs-var hs-var">combineBufSpans</span></a></span></span><span> </span><span id="local-6989586621680799536"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799536"><span class="hs-identifier hs-var">span1</span></a></span></span><span> </span><span id="local-6989586621680799535"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799535"><span class="hs-identifier hs-var">span2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799534"><span class="hs-identifier hs-var">start</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799533"><span class="hs-identifier hs-var">end</span></a></span><span>
</span><span id="line-514"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-515"></span><span>    </span><span id="local-6989586621680799534"><span class="annot"><span class="annottext">start :: BufPos
</span><a href="#local-6989586621680799534"><span class="hs-identifier hs-var hs-var">start</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufPos
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">min</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799536"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799535"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-516"></span><span>    </span><span id="local-6989586621680799533"><span class="annot"><span class="annottext">end :: BufPos
</span><a href="#local-6989586621680799533"><span class="hs-identifier hs-var hs-var">end</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufPos
forall a. Ord a =&gt; a -&gt; a -&gt; a
</span><span class="hs-identifier hs-var">max</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanEnd"><span class="hs-identifier hs-var hs-var">bufSpanEnd</span></a></span><span>   </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799536"><span class="hs-identifier hs-var">span1</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanEnd"><span class="hs-identifier hs-var hs-var">bufSpanEnd</span></a></span><span>   </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799535"><span class="hs-identifier hs-var">span2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-517"></span><span>
</span><span id="line-518"></span><span>
</span><span id="line-519"></span><span class="hs-comment">-- | Convert a SrcSpan into one that represents only its first character</span><span>
</span><span id="line-520"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFirstCharacter"><span class="hs-identifier hs-type">srcSpanFirstCharacter</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-521"></span><span id="srcSpanFirstCharacter"><span class="annot"><span class="annottext">srcSpanFirstCharacter :: SrcSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#srcSpanFirstCharacter"><span class="hs-identifier hs-var hs-var">srcSpanFirstCharacter</span></a></span></span><span> </span><span id="local-6989586621680799532"><span class="annot"><span class="annottext">l :: SrcSpan
</span><a href="#local-6989586621680799532"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="hs-special">{</span><span class="hs-special">}</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799532"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-522"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFirstCharacter"><span class="hs-identifier hs-var">srcSpanFirstCharacter</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799531"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799531"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span id="local-6989586621680799530"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799530"><span class="hs-identifier hs-var">mbspan</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-523"></span><span>    </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe BufSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier hs-var">mkRealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799529"><span class="hs-identifier hs-var">loc1</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799528"><span class="hs-identifier hs-var">loc2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufSpan -&gt; BufSpan) -&gt; Maybe BufSpan -&gt; Maybe BufSpan
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufSpan
</span><a href="#local-6989586621680799527"><span class="hs-identifier hs-var">mkBufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799530"><span class="hs-identifier hs-var">mbspan</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-524"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-525"></span><span>    </span><span id="local-6989586621680799529"><span class="annot"><span class="annottext">loc1 :: RealSrcLoc
</span><a href="#local-6989586621680799529"><span class="hs-identifier hs-var">loc1</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799526"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799526"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621680799525"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799525"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680799524"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799524"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799531"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-526"></span><span>    </span><span id="local-6989586621680799528"><span class="annot"><span class="annottext">loc2 :: RealSrcLoc
</span><a href="#local-6989586621680799528"><span class="hs-identifier hs-var hs-var">loc2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-var">SrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799526"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799525"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799524"><span class="hs-identifier hs-var">c</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-527"></span><span>    </span><span id="local-6989586621680799527"><span class="annot"><span class="annottext">mkBufSpan :: BufSpan -&gt; BufSpan
</span><a href="#local-6989586621680799527"><span class="hs-identifier hs-var hs-var">mkBufSpan</span></a></span></span><span> </span><span id="local-6989586621680799521"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799521"><span class="hs-identifier hs-var">bspan</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-528"></span><span>      </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621680799520"><span class="annot"><span class="annottext">bpos1 :: BufPos
</span><a href="#local-6989586621680799520"><span class="hs-identifier hs-var">bpos1</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span> </span><span id="local-6989586621680799519"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799519"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799521"><span class="hs-identifier hs-var">bspan</span></a></span><span>
</span><span id="line-529"></span><span>          </span><span id="local-6989586621680799518"><span class="annot"><span class="annottext">bpos2 :: BufPos
</span><a href="#local-6989586621680799518"><span class="hs-identifier hs-var hs-var">bpos2</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-var">BufPos</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799519"><span class="hs-identifier hs-var">i</span></a></span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span>
</span><span id="line-530"></span><span>      </span><span class="hs-keyword">in</span><span> </span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799520"><span class="hs-identifier hs-var">bpos1</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799518"><span class="hs-identifier hs-var">bpos2</span></a></span><span>
</span><span id="line-531"></span><span>
</span><span id="line-532"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcSpan-predicates]{Predicates}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-539"></span><span>
</span><span id="line-540"></span><span class="hs-comment">-- | Test if a 'SrcSpan' is &quot;good&quot;, i.e. has precise location information</span><span>
</span><span id="line-541"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGoodSrcSpan"><span class="hs-identifier hs-type">isGoodSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-542"></span><span id="isGoodSrcSpan"><span class="annot"><span class="annottext">isGoodSrcSpan :: SrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isGoodSrcSpan"><span class="hs-identifier hs-var hs-var">isGoodSrcSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span>
</span><span id="line-543"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isGoodSrcSpan"><span class="hs-identifier hs-var">isGoodSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-544"></span><span>
</span><span id="line-545"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isOneLineSpan"><span class="hs-identifier hs-type">isOneLineSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-546"></span><span class="hs-comment">-- ^ True if the span is known to straddle only one line.</span><span>
</span><span id="line-547"></span><span class="hs-comment">-- For &quot;bad&quot; 'SrcSpan', it returns False</span><span>
</span><span id="line-548"></span><span id="isOneLineSpan"><span class="annot"><span class="annottext">isOneLineSpan :: SrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isOneLineSpan"><span class="hs-identifier hs-var hs-var">isOneLineSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799517"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799517"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799517"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799517"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-549"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isOneLineSpan"><span class="hs-identifier hs-var">isOneLineSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-550"></span><span>
</span><span id="line-551"></span><span class="hs-comment">-- | Tests whether the first span &quot;contains&quot; the other span, meaning</span><span>
</span><span id="line-552"></span><span class="hs-comment">-- that it covers at least as much source code. True where spans are equal.</span><span>
</span><span id="line-553"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#containsSpan"><span class="hs-identifier hs-type">containsSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-554"></span><span id="containsSpan"><span class="annot"><span class="annottext">containsSpan :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#containsSpan"><span class="hs-identifier hs-var hs-var">containsSpan</span></a></span></span><span> </span><span id="local-6989586621680799516"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span></span><span> </span><span id="local-6989586621680799515"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span></span><span>
</span><span id="line-555"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-556"></span><span>       </span><span class="annot"><span class="annottext">(Int, Int) -&gt; (Int, Int) -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-557"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-558"></span><span>       </span><span class="annot"><span class="annottext">(Int, Int) -&gt; (Int, Int) -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-559"></span><span>    </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799516"><span class="hs-identifier hs-var">s1</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799515"><span class="hs-identifier hs-var">s2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-560"></span><span>    </span><span class="hs-comment">-- We check file equality last because it is (presumably?) least</span><span>
</span><span id="line-561"></span><span>    </span><span class="hs-comment">-- likely to fail.</span><span>
</span><span id="line-562"></span><span class="hs-comment">{-
%************************************************************************
%*                                                                      *
\subsection[SrcSpan-unsafe-access-fns]{Unsafe access functions}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-569"></span><span>
</span><span id="line-570"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-type">srcSpanStartLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-571"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-type">srcSpanEndLine</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-572"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-type">srcSpanStartCol</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-573"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-type">srcSpanEndCol</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-574"></span><span>
</span><span id="line-575"></span><span id="srcSpanStartLine"><span class="annot"><span class="annottext">srcSpanStartLine :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var hs-var">srcSpanStartLine</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">srcSpanSLine :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanSLine"><span class="hs-identifier hs-var">srcSpanSLine</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680799513"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799513"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799513"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-576"></span><span id="srcSpanEndLine"><span class="annot"><span class="annottext">srcSpanEndLine :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var hs-var">srcSpanEndLine</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">srcSpanELine :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanELine"><span class="hs-identifier hs-var">srcSpanELine</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680799512"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799512"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799512"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-577"></span><span id="srcSpanStartCol"><span class="annot"><span class="annottext">srcSpanStartCol :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var hs-var">srcSpanStartCol</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">srcSpanSCol :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanSCol"><span class="hs-identifier hs-var">srcSpanSCol</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680799511"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799511"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799511"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-578"></span><span id="srcSpanEndCol"><span class="annot"><span class="annottext">srcSpanEndCol :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var hs-var">srcSpanEndCol</span></a></span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">srcSpanECol :: RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanECol"><span class="hs-identifier hs-var">srcSpanECol</span></a></span><span class="hs-glyph">=</span><span id="local-6989586621680799510"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799510"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799510"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-579"></span><span>
</span><span id="line-580"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcSpan-access-fns]{Access functions}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-587"></span><span>
</span><span id="line-588"></span><span class="hs-comment">-- | Returns the location at the start of the 'SrcSpan' or a &quot;bad&quot; 'SrcSpan' if that is unavailable</span><span>
</span><span id="line-589"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStart"><span class="hs-identifier hs-type">srcSpanStart</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span>
</span><span id="line-590"></span><span id="srcSpanStart"><span class="annot"><span class="annottext">srcSpanStart :: SrcSpan -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#srcSpanStart"><span class="hs-identifier hs-var hs-var">srcSpanStart</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span id="local-6989586621680799509"><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799509"><span class="hs-identifier hs-var">r</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier hs-var">unhelpfulSpanFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799509"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-591"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanStart"><span class="hs-identifier hs-var">srcSpanStart</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799508"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799508"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680799507"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799507"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Maybe BufPos -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-var">RealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799508"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufSpan -&gt; BufPos) -&gt; Maybe BufSpan -&gt; Maybe BufPos
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799507"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-592"></span><span>
</span><span id="line-593"></span><span class="hs-comment">-- | Returns the location at the end of the 'SrcSpan' or a &quot;bad&quot; 'SrcSpan' if that is unavailable</span><span>
</span><span id="line-594"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEnd"><span class="hs-identifier hs-type">srcSpanEnd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span>
</span><span id="line-595"></span><span id="srcSpanEnd"><span class="annot"><span class="annottext">srcSpanEnd :: SrcSpan -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#srcSpanEnd"><span class="hs-identifier hs-var hs-var">srcSpanEnd</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span id="local-6989586621680799506"><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799506"><span class="hs-identifier hs-var">r</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulLoc"><span class="hs-identifier hs-var">UnhelpfulLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier hs-var">unhelpfulSpanFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799506"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-596"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanEnd"><span class="hs-identifier hs-var">srcSpanEnd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799505"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799505"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680799504"><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799504"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Maybe BufPos -&gt; SrcLoc
</span><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-var">RealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799505"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(BufSpan -&gt; BufPos) -&gt; Maybe BufSpan -&gt; Maybe BufPos
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanEnd"><span class="hs-identifier hs-var hs-var">bufSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><a href="#local-6989586621680799504"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-597"></span><span>
</span><span id="line-598"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-type">realSrcSpanStart</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span>
</span><span id="line-599"></span><span id="realSrcSpanStart"><span class="annot"><span class="annottext">realSrcSpanStart :: RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var hs-var">realSrcSpanStart</span></a></span></span><span> </span><span id="local-6989586621680799503"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799503"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-var">mkRealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799503"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-600"></span><span>                                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartLine"><span class="hs-identifier hs-var">srcSpanStartLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799503"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-601"></span><span>                                  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanStartCol"><span class="hs-identifier hs-var">srcSpanStartCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799503"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-602"></span><span>
</span><span id="line-603"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-type">realSrcSpanEnd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span>
</span><span id="line-604"></span><span id="realSrcSpanEnd"><span class="annot"><span class="annottext">realSrcSpanEnd :: RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var hs-var">realSrcSpanEnd</span></a></span></span><span> </span><span id="local-6989586621680799502"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799502"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-var">mkRealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799502"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-605"></span><span>                                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndLine"><span class="hs-identifier hs-var">srcSpanEndLine</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799502"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-606"></span><span>                                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Int
</span><a href="GHC.Types.SrcLoc.html#srcSpanEndCol"><span class="hs-identifier hs-var">srcSpanEndCol</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799502"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-607"></span><span>
</span><span id="line-608"></span><span class="hs-comment">-- | Obtains the filename for a 'SrcSpan' if it is &quot;good&quot;</span><span>
</span><span id="line-609"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier hs-type">srcSpanFileName_maybe</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-610"></span><span id="srcSpanFileName_maybe"><span class="annot"><span class="annottext">srcSpanFileName_maybe :: SrcSpan -&gt; Maybe FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier hs-var hs-var">srcSpanFileName_maybe</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799501"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799501"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Maybe FastString
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799501"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-611"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#srcSpanFileName_maybe"><span class="hs-identifier hs-var">srcSpanFileName_maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe FastString
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-612"></span><span>
</span><span id="line-613"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[SrcSpan-instances]{Instances}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-620"></span><span>
</span><span id="line-621"></span><span class="hs-comment">-- We want to order RealSrcSpans first by the start point, then by the</span><span>
</span><span id="line-622"></span><span class="hs-comment">-- end point.</span><span>
</span><span id="line-623"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799486"><span id="local-6989586621680799488"><span id="local-6989586621680799490"><span id="local-6989586621680799492"><span id="local-6989586621680799494"><span id="local-6989586621680799496"><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span></span></span></span></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-624"></span><span>  </span><span id="local-6989586621680799483"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799483"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799482"><span class="annot"><span class="annottext">compare :: RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><a href="#local-6989586621680799482"><span class="hs-operator hs-var hs-var hs-var hs-var">`compare`</span></a></span></span><span> </span><span id="local-6989586621680799481"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799481"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-625"></span><span>     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799483"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799481"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Ordering -&gt; Ordering -&gt; Ordering
</span><a href="GHC.Utils.Misc.html#thenCmp"><span class="hs-operator hs-var">`thenCmp`</span></a></span><span>
</span><span id="line-626"></span><span>     </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span>   </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799483"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span>   </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799481"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-627"></span><span>
</span><span id="line-628"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799475"><span id="local-6989586621680799478"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-629"></span><span>  </span><span id="local-6989586621680799471"><span class="annot"><span class="annottext">show :: RealSrcLoc -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var hs-var hs-var hs-var">show</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcLoc"><span class="hs-identifier hs-type">SrcLoc</span></a></span><span> </span><span id="local-6989586621680799469"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799469"><span class="hs-identifier hs-var">filename</span></a></span></span><span> </span><span id="local-6989586621680799468"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799468"><span class="hs-identifier hs-var">row</span></a></span></span><span> </span><span id="local-6989586621680799467"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799467"><span class="hs-identifier hs-var">col</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-630"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcLoc &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799469"><span class="hs-identifier hs-var">filename</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799468"><span class="hs-identifier hs-var">row</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799467"><span class="hs-identifier hs-var">col</span></a></span><span>
</span><span id="line-631"></span><span>
</span><span id="line-632"></span><span class="hs-comment">-- Show is used by GHC.Parser.Lexer, because we derive Show for Token</span><span>
</span><span id="line-633"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799462"><span id="local-6989586621680799465"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-634"></span><span>  </span><span id="local-6989586621680799455"><span class="annot"><span class="annottext">show :: RealSrcSpan -&gt; String
</span><a href="#local-6989586621680799455"><span class="hs-identifier hs-var hs-var hs-var hs-var">show</span></a></span></span><span> </span><span id="local-6989586621680799454"><span class="annot"><span class="annottext">span :: RealSrcSpan
</span><a href="#local-6989586621680799454"><span class="hs-identifier hs-var">span</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span id="local-6989586621680799453"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799453"><span class="hs-identifier hs-var">file</span></a></span></span><span> </span><span id="local-6989586621680799452"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799452"><span class="hs-identifier hs-var">sl</span></a></span></span><span> </span><span id="local-6989586621680799451"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799451"><span class="hs-identifier hs-var">sc</span></a></span></span><span> </span><span id="local-6989586621680799450"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799450"><span class="hs-identifier hs-var">el</span></a></span></span><span> </span><span id="local-6989586621680799449"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799449"><span class="hs-identifier hs-var">ec</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-635"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isPointRealSpan"><span class="hs-identifier hs-var">isPointRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799454"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-636"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcSpanPoint &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799453"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; String) -&gt; [Int] -&gt; [String]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799452"><span class="hs-identifier hs-var">sl</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799451"><span class="hs-identifier hs-var">sc</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-637"></span><span>
</span><span id="line-638"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isOneLineRealSpan"><span class="hs-identifier hs-var">isOneLineRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799454"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-639"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcSpanOneLine &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799453"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span>
</span><span id="line-640"></span><span>                        </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; String) -&gt; [Int] -&gt; [String]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799452"><span class="hs-identifier hs-var">sl</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799451"><span class="hs-identifier hs-var">sc</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799449"><span class="hs-identifier hs-var">ec</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-641"></span><span>
</span><span id="line-642"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>
</span><span id="line-643"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;SrcSpanMultiLine &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799453"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span>
</span><span id="line-644"></span><span>                          </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [String] -&gt; String
forall a. [a] -&gt; [[a]] -&gt; [a]
</span><a href="../../base/src/Data.OldList.html#intercalate"><span class="hs-identifier hs-var">intercalate</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot; &quot;</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Int -&gt; String) -&gt; [Int] -&gt; [String]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799452"><span class="hs-identifier hs-var">sl</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799451"><span class="hs-identifier hs-var">sc</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799450"><span class="hs-identifier hs-var">el</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799449"><span class="hs-identifier hs-var">ec</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-645"></span><span>
</span><span id="line-646"></span><span>
</span><span id="line-647"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799446"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-648"></span><span>    </span><span id="local-6989586621680799445"><span class="annot"><span class="annottext">ppr :: RealSrcSpan -&gt; SDoc
</span><a href="#local-6989586621680799445"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680799444"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799444"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; RealSrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var">pprUserRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799444"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-649"></span><span>
</span><span id="line-650"></span><span class="hs-comment">-- I don't know why there is this style-based difference</span><span>
</span><span id="line-651"></span><span class="hs-comment">--      = getPprStyle $ \ sty -&gt;</span><span>
</span><span id="line-652"></span><span class="hs-comment">--        if userStyle sty || debugStyle sty then</span><span>
</span><span id="line-653"></span><span class="hs-comment">--           text (showUserRealSpan True span)</span><span>
</span><span id="line-654"></span><span class="hs-comment">--        else</span><span>
</span><span id="line-655"></span><span class="hs-comment">--           hcat [text &quot;{-# LINE &quot;, int (srcSpanStartLine span), space,</span><span>
</span><span id="line-656"></span><span class="hs-comment">--                 char '\&quot;', pprFastFilePath $ srcSpanFile span, text &quot; #-}&quot;]</span><span>
</span><span id="line-657"></span><span>
</span><span id="line-658"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799441"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-659"></span><span>    </span><span id="local-6989586621680799440"><span class="annot"><span class="annottext">ppr :: SrcSpan -&gt; SDoc
</span><a href="#local-6989586621680799440"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621680799439"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799439"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserSpan"><span class="hs-identifier hs-var">pprUserSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">True</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799439"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-660"></span><span>
</span><span id="line-661"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799435"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier hs-type">UnhelpfulSpanReason</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-662"></span><span>    </span><span id="local-6989586621680799434"><span class="annot"><span class="annottext">ppr :: UnhelpfulSpanReason -&gt; SDoc
</span><a href="#local-6989586621680799434"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUnhelpfulSpanReason"><span class="hs-identifier hs-var">pprUnhelpfulSpanReason</span></a></span><span>
</span><span id="line-663"></span><span>
</span><span id="line-664"></span><span class="hs-comment">-- I don't know why there is this style-based difference</span><span>
</span><span id="line-665"></span><span class="hs-comment">--      = getPprStyle $ \ sty -&gt;</span><span>
</span><span id="line-666"></span><span class="hs-comment">--        if userStyle sty || debugStyle sty then</span><span>
</span><span id="line-667"></span><span class="hs-comment">--           pprUserSpan True span</span><span>
</span><span id="line-668"></span><span class="hs-comment">--        else</span><span>
</span><span id="line-669"></span><span class="hs-comment">--           case span of</span><span>
</span><span id="line-670"></span><span class="hs-comment">--           UnhelpfulSpan _ -&gt; panic &quot;Outputable UnhelpfulSpan&quot;</span><span>
</span><span id="line-671"></span><span class="hs-comment">--           RealSrcSpan s -&gt; ppr s</span><span>
</span><span id="line-672"></span><span>
</span><span id="line-673"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier hs-type">unhelpfulSpanFS</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier hs-type">UnhelpfulSpanReason</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#FastString"><span class="hs-identifier hs-type">FastString</span></a></span><span>
</span><span id="line-674"></span><span id="unhelpfulSpanFS"><span class="annot"><span class="annottext">unhelpfulSpanFS :: UnhelpfulSpanReason -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier hs-var hs-var">unhelpfulSpanFS</span></a></span></span><span> </span><span id="local-6989586621680799433"><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799433"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799433"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-675"></span><span>  </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulOther"><span class="hs-identifier hs-type">UnhelpfulOther</span></a></span><span> </span><span id="local-6989586621680799432"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799432"><span class="hs-identifier hs-var">s</span></a></span></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799432"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-676"></span><span>  </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulNoLocationInfo"><span class="hs-identifier hs-var">UnhelpfulNoLocationInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;no location info&gt;&quot;</span></span><span>
</span><span id="line-677"></span><span>  </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulWiredIn"><span class="hs-identifier hs-var">UnhelpfulWiredIn</span></a></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;wired into compiler&gt;&quot;</span></span><span>
</span><span id="line-678"></span><span>  </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulInteractive"><span class="hs-identifier hs-var">UnhelpfulInteractive</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;interactive&gt;&quot;</span></span><span>
</span><span id="line-679"></span><span>  </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="GHC.Types.SrcLoc.html#UnhelpfulGenerated"><span class="hs-identifier hs-var">UnhelpfulGenerated</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;generated&gt;&quot;</span></span><span>
</span><span id="line-680"></span><span>
</span><span id="line-681"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUnhelpfulSpanReason"><span class="hs-identifier hs-type">pprUnhelpfulSpanReason</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpanReason"><span class="hs-identifier hs-type">UnhelpfulSpanReason</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-682"></span><span id="pprUnhelpfulSpanReason"><span class="annot"><span class="annottext">pprUnhelpfulSpanReason :: UnhelpfulSpanReason -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUnhelpfulSpanReason"><span class="hs-identifier hs-var hs-var">pprUnhelpfulSpanReason</span></a></span></span><span> </span><span id="local-6989586621680799431"><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799431"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#unhelpfulSpanFS"><span class="hs-identifier hs-var">unhelpfulSpanFS</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799431"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-683"></span><span>
</span><span id="line-684"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserSpan"><span class="hs-identifier hs-type">pprUserSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-685"></span><span id="pprUserSpan"><span class="annot"><span class="annottext">pprUserSpan :: Bool -&gt; SrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserSpan"><span class="hs-identifier hs-var hs-var">pprUserSpan</span></a></span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier">_</span></span><span>         </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span id="local-6989586621680799430"><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799430"><span class="hs-identifier hs-var">r</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUnhelpfulSpanReason"><span class="hs-identifier hs-var">pprUnhelpfulSpanReason</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><a href="#local-6989586621680799430"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-686"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserSpan"><span class="hs-identifier hs-var">pprUserSpan</span></a></span><span> </span><span id="local-6989586621680799429"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799429"><span class="hs-identifier hs-var">show_path</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799428"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799428"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; RealSrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var">pprUserRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799429"><span class="hs-identifier hs-var">show_path</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799428"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-687"></span><span>
</span><span id="line-688"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-type">pprUserRealSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-689"></span><span id="pprUserRealSpan"><span class="annot"><span class="annottext">pprUserRealSpan :: Bool -&gt; RealSrcSpan -&gt; SDoc
</span><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var hs-var">pprUserRealSpan</span></a></span></span><span> </span><span id="local-6989586621680799427"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799427"><span class="hs-identifier hs-var">show_path</span></a></span></span><span> </span><span id="local-6989586621680799426"><span class="annot"><span class="annottext">span :: RealSrcSpan
</span><a href="#local-6989586621680799426"><span class="hs-identifier hs-var">span</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span id="local-6989586621680799425"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799425"><span class="hs-identifier hs-var">src_path</span></a></span></span><span> </span><span id="local-6989586621680799424"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799424"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621680799423"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799423"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-690"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isPointRealSpan"><span class="hs-identifier hs-var">isPointRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799426"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-691"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var">ppWhen</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799427"><span class="hs-identifier hs-var">show_path</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-var">pprFastFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799425"><span class="hs-identifier hs-var">src_path</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-692"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799424"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-693"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799423"><span class="hs-identifier hs-var">col</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-694"></span><span>
</span><span id="line-695"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var">pprUserRealSpan</span></a></span><span> </span><span id="local-6989586621680799421"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799421"><span class="hs-identifier hs-var">show_path</span></a></span></span><span> </span><span id="local-6989586621680799420"><span class="annot"><span class="annottext">span :: RealSrcSpan
</span><a href="#local-6989586621680799420"><span class="hs-identifier hs-var">span</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span id="local-6989586621680799419"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799419"><span class="hs-identifier hs-var">src_path</span></a></span></span><span> </span><span id="local-6989586621680799418"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799418"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621680799417"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799417"><span class="hs-identifier hs-var">scol</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799416"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799416"><span class="hs-identifier hs-var">ecol</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-696"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isOneLineRealSpan"><span class="hs-identifier hs-var">isOneLineRealSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799420"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-697"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var">ppWhen</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799421"><span class="hs-identifier hs-var">show_path</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-var">pprFastFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799419"><span class="hs-identifier hs-var">src_path</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-698"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799418"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-699"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799417"><span class="hs-identifier hs-var">scol</span></a></span><span>
</span><span id="line-700"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppUnless"><span class="hs-identifier hs-var">ppUnless</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799416"><span class="hs-identifier hs-var">ecol</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799417"><span class="hs-identifier hs-var">scol</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799416"><span class="hs-identifier hs-var">ecol</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-701"></span><span>            </span><span class="hs-comment">-- For single-character or point spans, we just</span><span>
</span><span id="line-702"></span><span>            </span><span class="hs-comment">-- output the starting column number</span><span>
</span><span id="line-703"></span><span>
</span><span id="line-704"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#pprUserRealSpan"><span class="hs-identifier hs-var">pprUserRealSpan</span></a></span><span> </span><span id="local-6989586621680799413"><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799413"><span class="hs-identifier hs-var">show_path</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan%27"><span class="hs-identifier hs-type">RealSrcSpan'</span></a></span><span> </span><span id="local-6989586621680799412"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799412"><span class="hs-identifier hs-var">src_path</span></a></span></span><span> </span><span id="local-6989586621680799411"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799411"><span class="hs-identifier hs-var">sline</span></a></span></span><span> </span><span id="local-6989586621680799410"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799410"><span class="hs-identifier hs-var">scol</span></a></span></span><span> </span><span id="local-6989586621680799409"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799409"><span class="hs-identifier hs-var">eline</span></a></span></span><span> </span><span id="local-6989586621680799408"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799408"><span class="hs-identifier hs-var">ecol</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-705"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppWhen"><span class="hs-identifier hs-var">ppWhen</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621680799413"><span class="hs-identifier hs-var">show_path</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#pprFastFilePath"><span class="hs-identifier hs-var">pprFastFilePath</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621680799412"><span class="hs-identifier hs-var">src_path</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-706"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799411"><span class="hs-identifier hs-var">sline</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799410"><span class="hs-identifier hs-var">scol</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-707"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-708"></span><span>         </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#parens"><span class="hs-identifier hs-var">parens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799409"><span class="hs-identifier hs-var">eline</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799405"><span class="hs-identifier hs-var">ecol'</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-709"></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-710"></span><span>   </span><span id="local-6989586621680799405"><span class="annot"><span class="annottext">ecol' :: Int
</span><a href="#local-6989586621680799405"><span class="hs-identifier hs-var hs-var">ecol'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799408"><span class="hs-identifier hs-var">ecol</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799408"><span class="hs-identifier hs-var">ecol</span></a></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799408"><span class="hs-identifier hs-var">ecol</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-711"></span><span>
</span><span id="line-712"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection[Located]{Attaching SrcSpans to things}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-719"></span><span>
</span><span id="line-720"></span><span class="hs-comment">-- | We attach SrcSpans to lots of things, so let's have a datatype for it.</span><span>
</span><span id="line-721"></span><span class="hs-keyword">data</span><span> </span><span id="GenLocated"><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-var">GenLocated</span></a></span></span><span> </span><span id="local-6989586621680800420"><span class="annot"><a href="#local-6989586621680800420"><span class="hs-identifier hs-type">l</span></a></span></span><span> </span><span id="local-6989586621680800419"><span class="annot"><a href="#local-6989586621680800419"><span class="hs-identifier hs-type">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="L"><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span></span><span> </span><span class="annot"><a href="#local-6989586621680800420"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800419"><span class="hs-identifier hs-type">e</span></a></span><span>
</span><span id="line-722"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799398"><span id="local-6989586621680799402"><span class="annot"><span class="annottext">GenLocated l e -&gt; GenLocated l e -&gt; Bool
(GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; Eq (GenLocated l e)
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
forall l e.
(Eq l, Eq e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
/= :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c/= :: forall l e.
(Eq l, Eq e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
== :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c== :: forall l e.
(Eq l, Eq e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799375"><span id="local-6989586621680799377"><span id="local-6989586621680799380"><span id="local-6989586621680799383"><span id="local-6989586621680799386"><span id="local-6989586621680799390"><span id="local-6989586621680799394"><span class="annot"><span class="annottext">Eq (GenLocated l e)
Eq (GenLocated l e)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Ordering)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; Bool)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e)
-&gt; (GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e)
-&gt; Ord (GenLocated l e)
GenLocated l e -&gt; GenLocated l e -&gt; Bool
GenLocated l e -&gt; GenLocated l e -&gt; Ordering
GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
forall {l} {e}. (Ord l, Ord e) =&gt; Eq (GenLocated l e)
forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Ordering
forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
min :: GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
$cmin :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
max :: GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
$cmax :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; GenLocated l e
&gt;= :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c&gt;= :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
&gt; :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c&gt; :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
&lt;= :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c&lt;= :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
&lt; :: GenLocated l e -&gt; GenLocated l e -&gt; Bool
$c&lt; :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Bool
compare :: GenLocated l e -&gt; GenLocated l e -&gt; Ordering
$ccompare :: forall l e.
(Ord l, Ord e) =&gt;
GenLocated l e -&gt; GenLocated l e -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799335"><span id="local-6989586621680799337"><span id="local-6989586621680799339"><span id="local-6989586621680799341"><span id="local-6989586621680799343"><span id="local-6989586621680799345"><span id="local-6989586621680799347"><span id="local-6989586621680799349"><span id="local-6989586621680799356"><span id="local-6989586621680799358"><span id="local-6989586621680799360"><span id="local-6989586621680799362"><span id="local-6989586621680799366"><span id="local-6989586621680799370"><span class="annot"><span class="annottext">Typeable (GenLocated l e)
Typeable (GenLocated l e)
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; GenLocated l e -&gt; c (GenLocated l e))
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenLocated l e))
-&gt; (GenLocated l e -&gt; Constr)
-&gt; (GenLocated l e -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenLocated l e)))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c (GenLocated l e)))
-&gt; ((forall b. Data b =&gt; b -&gt; b)
    -&gt; GenLocated l e -&gt; GenLocated l e)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r)
-&gt; (forall u.
    (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenLocated l e -&gt; m (GenLocated l e))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenLocated l e -&gt; m (GenLocated l e))
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; GenLocated l e -&gt; m (GenLocated l e))
-&gt; Data (GenLocated l e)
GenLocated l e -&gt; DataType
GenLocated l e -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; GenLocated l e -&gt; GenLocated l e
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; [u]
forall {l} {e}. (Data l, Data e) =&gt; Typeable (GenLocated l e)
forall l e. (Data l, Data e) =&gt; GenLocated l e -&gt; DataType
forall l e. (Data l, Data e) =&gt; GenLocated l e -&gt; Constr
forall l e.
(Data l, Data e) =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; GenLocated l e -&gt; GenLocated l e
forall l e u.
(Data l, Data e) =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; u
forall l e u.
(Data l, Data e) =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; [u]
forall l e r r'.
(Data l, Data e) =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
forall l e r r'.
(Data l, Data e) =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
forall l e (m :: * -&gt; *).
(Data l, Data e, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
forall l e (m :: * -&gt; *).
(Data l, Data e, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
forall l e (c :: * -&gt; *).
(Data l, Data e) =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenLocated l e)
forall l e (c :: * -&gt; *).
(Data l, Data e) =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenLocated l e -&gt; c (GenLocated l e)
forall l e (t :: * -&gt; *) (c :: * -&gt; *).
(Data l, Data e, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenLocated l e))
forall l e (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data l, Data e, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenLocated l e))
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenLocated l e)
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenLocated l e -&gt; c (GenLocated l e)
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenLocated l e))
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenLocated l e))
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
$cgmapMo :: forall l e (m :: * -&gt; *).
(Data l, Data e, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
$cgmapMp :: forall l e (m :: * -&gt; *).
(Data l, Data e, MonadPlus m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
$cgmapM :: forall l e (m :: * -&gt; *).
(Data l, Data e, Monad m) =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; GenLocated l e -&gt; m (GenLocated l e)
gmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; u
$cgmapQi :: forall l e u.
(Data l, Data e) =&gt;
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; [u]
$cgmapQ :: forall l e u.
(Data l, Data e) =&gt;
(forall d. Data d =&gt; d -&gt; u) -&gt; GenLocated l e -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
$cgmapQr :: forall l e r r'.
(Data l, Data e) =&gt;
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
$cgmapQl :: forall l e r r'.
(Data l, Data e) =&gt;
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; GenLocated l e -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; GenLocated l e -&gt; GenLocated l e
$cgmapT :: forall l e.
(Data l, Data e) =&gt;
(forall b. Data b =&gt; b -&gt; b) -&gt; GenLocated l e -&gt; GenLocated l e
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenLocated l e))
$cdataCast2 :: forall l e (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
(Data l, Data e, Typeable t) =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c (GenLocated l e))
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenLocated l e))
$cdataCast1 :: forall l e (t :: * -&gt; *) (c :: * -&gt; *).
(Data l, Data e, Typeable t) =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c (GenLocated l e))
dataTypeOf :: GenLocated l e -&gt; DataType
$cdataTypeOf :: forall l e. (Data l, Data e) =&gt; GenLocated l e -&gt; DataType
toConstr :: GenLocated l e -&gt; Constr
$ctoConstr :: forall l e. (Data l, Data e) =&gt; GenLocated l e -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenLocated l e)
$cgunfold :: forall l e (c :: * -&gt; *).
(Data l, Data e) =&gt;
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c (GenLocated l e)
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenLocated l e -&gt; c (GenLocated l e)
$cgfoldl :: forall l e (c :: * -&gt; *).
(Data l, Data e) =&gt;
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; GenLocated l e -&gt; c (GenLocated l e)
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799330"><span id="local-6989586621680799332"><span class="annot"><span class="annottext">(forall a b. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b)
-&gt; (forall a b. a -&gt; GenLocated l b -&gt; GenLocated l a)
-&gt; Functor (GenLocated l)
forall a b. a -&gt; GenLocated l b -&gt; GenLocated l a
forall a b. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
forall l a b. a -&gt; GenLocated l b -&gt; GenLocated l a
forall l a b. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
forall (f :: * -&gt; *).
(forall a b. (a -&gt; b) -&gt; f a -&gt; f b)
-&gt; (forall a b. a -&gt; f b -&gt; f a) -&gt; Functor f
&lt;$ :: forall a b. a -&gt; GenLocated l b -&gt; GenLocated l a
$c&lt;$ :: forall l a b. a -&gt; GenLocated l b -&gt; GenLocated l a
fmap :: forall a b. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
$cfmap :: forall l a b. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
</span><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799293"><span id="local-6989586621680799295"><span id="local-6989586621680799297"><span id="local-6989586621680799299"><span id="local-6989586621680799301"><span id="local-6989586621680799303"><span id="local-6989586621680799305"><span id="local-6989586621680799307"><span id="local-6989586621680799309"><span id="local-6989586621680799311"><span id="local-6989586621680799313"><span id="local-6989586621680799315"><span id="local-6989586621680799317"><span id="local-6989586621680799319"><span id="local-6989586621680799321"><span id="local-6989586621680799324"><span id="local-6989586621680799326"><span class="annot"><span class="annottext">(forall m. Monoid m =&gt; GenLocated l m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a)
-&gt; (forall a. GenLocated l a -&gt; [a])
-&gt; (forall a. GenLocated l a -&gt; Bool)
-&gt; (forall a. GenLocated l a -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; GenLocated l a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; GenLocated l a -&gt; a)
-&gt; (forall a. Ord a =&gt; GenLocated l a -&gt; a)
-&gt; (forall a. Num a =&gt; GenLocated l a -&gt; a)
-&gt; (forall a. Num a =&gt; GenLocated l a -&gt; a)
-&gt; Foldable (GenLocated l)
forall a. Eq a =&gt; a -&gt; GenLocated l a -&gt; Bool
forall a. Num a =&gt; GenLocated l a -&gt; a
forall a. Ord a =&gt; GenLocated l a -&gt; a
forall m. Monoid m =&gt; GenLocated l m -&gt; m
forall a. GenLocated l a -&gt; Bool
forall a. GenLocated l a -&gt; Int
forall a. GenLocated l a -&gt; [a]
forall a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
forall l a. Eq a =&gt; a -&gt; GenLocated l a -&gt; Bool
forall l a. Num a =&gt; GenLocated l a -&gt; a
forall l a. Ord a =&gt; GenLocated l a -&gt; a
forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
forall l m. Monoid m =&gt; GenLocated l m -&gt; m
forall l a. GenLocated l a -&gt; Bool
forall l a. GenLocated l a -&gt; Int
forall l a. GenLocated l a -&gt; [a]
forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
forall l a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
forall l m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
forall l b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
forall l a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
forall (t :: * -&gt; *).
(forall m. Monoid m =&gt; t m -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall m a. Monoid m =&gt; (a -&gt; m) -&gt; t a -&gt; m)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; t a -&gt; b)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. (a -&gt; a -&gt; a) -&gt; t a -&gt; a)
-&gt; (forall a. t a -&gt; [a])
-&gt; (forall a. t a -&gt; Bool)
-&gt; (forall a. t a -&gt; Int)
-&gt; (forall a. Eq a =&gt; a -&gt; t a -&gt; Bool)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Ord a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; (forall a. Num a =&gt; t a -&gt; a)
-&gt; Foldable t
product :: forall a. Num a =&gt; GenLocated l a -&gt; a
$cproduct :: forall l a. Num a =&gt; GenLocated l a -&gt; a
sum :: forall a. Num a =&gt; GenLocated l a -&gt; a
$csum :: forall l a. Num a =&gt; GenLocated l a -&gt; a
minimum :: forall a. Ord a =&gt; GenLocated l a -&gt; a
$cminimum :: forall l a. Ord a =&gt; GenLocated l a -&gt; a
maximum :: forall a. Ord a =&gt; GenLocated l a -&gt; a
$cmaximum :: forall l a. Ord a =&gt; GenLocated l a -&gt; a
elem :: forall a. Eq a =&gt; a -&gt; GenLocated l a -&gt; Bool
$celem :: forall l a. Eq a =&gt; a -&gt; GenLocated l a -&gt; Bool
length :: forall a. GenLocated l a -&gt; Int
$clength :: forall l a. GenLocated l a -&gt; Int
null :: forall a. GenLocated l a -&gt; Bool
$cnull :: forall l a. GenLocated l a -&gt; Bool
toList :: forall a. GenLocated l a -&gt; [a]
$ctoList :: forall l a. GenLocated l a -&gt; [a]
foldl1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
$cfoldl1 :: forall l a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
foldr1 :: forall a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
$cfoldr1 :: forall l a. (a -&gt; a -&gt; a) -&gt; GenLocated l a -&gt; a
foldl' :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
$cfoldl' :: forall l b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
foldl :: forall b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
$cfoldl :: forall l b a. (b -&gt; a -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
foldr' :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
$cfoldr' :: forall l a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
foldr :: forall a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
$cfoldr :: forall l a b. (a -&gt; b -&gt; b) -&gt; b -&gt; GenLocated l a -&gt; b
foldMap' :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
$cfoldMap' :: forall l m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
foldMap :: forall m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
$cfoldMap :: forall l m a. Monoid m =&gt; (a -&gt; m) -&gt; GenLocated l a -&gt; m
fold :: forall m. Monoid m =&gt; GenLocated l m -&gt; m
$cfold :: forall l m. Monoid m =&gt; GenLocated l m -&gt; m
</span><a href="../../base/src/Data.Foldable.html#Foldable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Foldable</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799277"><span id="local-6989586621680799279"><span id="local-6989586621680799281"><span id="local-6989586621680799286"><span class="annot"><span class="annottext">Functor (GenLocated l)
Foldable (GenLocated l)
Functor (GenLocated l)
-&gt; Foldable (GenLocated l)
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; GenLocated l a -&gt; f (GenLocated l b))
-&gt; (forall (f :: * -&gt; *) a.
    Applicative f =&gt;
    GenLocated l (f a) -&gt; f (GenLocated l a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b))
-&gt; (forall (m :: * -&gt; *) a.
    Monad m =&gt;
    GenLocated l (m a) -&gt; m (GenLocated l a))
-&gt; Traversable (GenLocated l)
forall l. Functor (GenLocated l)
forall l. Foldable (GenLocated l)
forall l (m :: * -&gt; *) a.
Monad m =&gt;
GenLocated l (m a) -&gt; m (GenLocated l a)
forall l (f :: * -&gt; *) a.
Applicative f =&gt;
GenLocated l (f a) -&gt; f (GenLocated l a)
forall l (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
forall l (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenLocated l a -&gt; f (GenLocated l b)
forall (t :: * -&gt; *).
Functor t
-&gt; Foldable t
-&gt; (forall (f :: * -&gt; *) a b.
    Applicative f =&gt;
    (a -&gt; f b) -&gt; t a -&gt; f (t b))
-&gt; (forall (f :: * -&gt; *) a. Applicative f =&gt; t (f a) -&gt; f (t a))
-&gt; (forall (m :: * -&gt; *) a b.
    Monad m =&gt;
    (a -&gt; m b) -&gt; t a -&gt; m (t b))
-&gt; (forall (m :: * -&gt; *) a. Monad m =&gt; t (m a) -&gt; m (t a))
-&gt; Traversable t
forall (m :: * -&gt; *) a.
Monad m =&gt;
GenLocated l (m a) -&gt; m (GenLocated l a)
forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenLocated l (f a) -&gt; f (GenLocated l a)
forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenLocated l a -&gt; f (GenLocated l b)
sequence :: forall (m :: * -&gt; *) a.
Monad m =&gt;
GenLocated l (m a) -&gt; m (GenLocated l a)
$csequence :: forall l (m :: * -&gt; *) a.
Monad m =&gt;
GenLocated l (m a) -&gt; m (GenLocated l a)
mapM :: forall (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
$cmapM :: forall l (m :: * -&gt; *) a b.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
sequenceA :: forall (f :: * -&gt; *) a.
Applicative f =&gt;
GenLocated l (f a) -&gt; f (GenLocated l a)
$csequenceA :: forall l (f :: * -&gt; *) a.
Applicative f =&gt;
GenLocated l (f a) -&gt; f (GenLocated l a)
traverse :: forall (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenLocated l a -&gt; f (GenLocated l b)
$ctraverse :: forall l (f :: * -&gt; *) a b.
Applicative f =&gt;
(a -&gt; f b) -&gt; GenLocated l a -&gt; f (GenLocated l b)
</span><a href="../../base/src/Data.Traversable.html#Traversable"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Traversable</span></a></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-723"></span><span>
</span><span id="line-724"></span><span class="hs-keyword">type</span><span> </span><span id="Located"><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-var">Located</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-725"></span><span class="hs-keyword">type</span><span> </span><span id="RealLocated"><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier hs-var">RealLocated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span>
</span><span id="line-726"></span><span>
</span><span id="line-727"></span><span id="local-6989586621680800384"><span id="local-6989586621680800385"><span id="local-6989586621680800386"><span class="annot"><a href="GHC.Types.SrcLoc.html#mapLoc"><span class="hs-identifier hs-type">mapLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680800386"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800385"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800384"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800386"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800384"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800385"><span class="hs-identifier hs-type">b</span></a></span></span></span></span><span>
</span><span id="line-728"></span><span id="mapLoc"><span class="annot"><span class="annottext">mapLoc :: forall a b l. (a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
</span><a href="GHC.Types.SrcLoc.html#mapLoc"><span class="hs-identifier hs-var hs-var">mapLoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b) -&gt; GenLocated l a -&gt; GenLocated l b
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span>
</span><span id="line-729"></span><span>
</span><span id="line-730"></span><span id="local-6989586621680800379"><span id="local-6989586621680800380"><span class="annot"><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-type">unLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800380"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800379"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800379"><span class="hs-identifier hs-type">e</span></a></span></span></span><span>
</span><span id="line-731"></span><span id="unLoc"><span class="annot"><span class="annottext">unLoc :: forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var hs-var">unLoc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">l
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799273"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799273"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799273"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-732"></span><span>
</span><span id="line-733"></span><span id="local-6989586621680800498"><span id="local-6989586621680800499"><span class="annot"><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-type">getLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800499"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800498"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800499"><span class="hs-identifier hs-type">l</span></a></span></span></span><span>
</span><span id="line-734"></span><span id="getLoc"><span class="annot"><span class="annottext">getLoc :: forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var hs-var">getLoc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799272"><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799272"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">e
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799272"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-735"></span><span>
</span><span id="line-736"></span><span id="local-6989586621680800374"><span class="annot"><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-type">noLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621680800374"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800374"><span class="hs-identifier hs-type">e</span></a></span></span><span>
</span><span id="line-737"></span><span id="noLoc"><span class="annot"><span class="annottext">noLoc :: forall e. e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#noLoc"><span class="hs-identifier hs-var hs-var">noLoc</span></a></span></span><span> </span><span id="local-6989586621680799271"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799271"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; e -&gt; GenLocated SrcSpan e
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="GHC.Types.SrcLoc.html#noSrcSpan"><span class="hs-identifier hs-var">noSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799271"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-738"></span><span>
</span><span id="line-739"></span><span id="local-6989586621680800372"><span class="annot"><a href="GHC.Types.SrcLoc.html#mkGeneralLocated"><span class="hs-identifier hs-type">mkGeneralLocated</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800372"><span class="hs-identifier hs-type">e</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800372"><span class="hs-identifier hs-type">e</span></a></span></span><span>
</span><span id="line-740"></span><span id="mkGeneralLocated"><span class="annot"><span class="annottext">mkGeneralLocated :: forall e. String -&gt; e -&gt; Located e
</span><a href="GHC.Types.SrcLoc.html#mkGeneralLocated"><span class="hs-identifier hs-var hs-var">mkGeneralLocated</span></a></span></span><span> </span><span id="local-6989586621680799270"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680799270"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621680799269"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799269"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; e -&gt; GenLocated SrcSpan e
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkGeneralSrcSpan"><span class="hs-identifier hs-var">mkGeneralSrcSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; FastString
</span><a href="GHC.Data.FastString.html#fsLit"><span class="hs-identifier hs-var">fsLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680799270"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799269"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-741"></span><span>
</span><span id="line-742"></span><span id="local-6989586621680800369"><span id="local-6989586621680800370"><span class="annot"><a href="GHC.Types.SrcLoc.html#combineLocs"><span class="hs-identifier hs-type">combineLocs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800370"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800369"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span></span></span><span>
</span><span id="line-743"></span><span id="combineLocs"><span class="annot"><span class="annottext">combineLocs :: forall a b. Located a -&gt; Located b -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineLocs"><span class="hs-identifier hs-var hs-var">combineLocs</span></a></span></span><span> </span><span id="local-6989586621680799268"><span class="annot"><span class="annottext">Located a
</span><a href="#local-6989586621680799268"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799267"><span class="annot"><span class="annottext">Located b
</span><a href="#local-6989586621680799267"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var">combineSrcSpans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located a -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located a
</span><a href="#local-6989586621680799268"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located b -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located b
</span><a href="#local-6989586621680799267"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-744"></span><span>
</span><span id="line-745"></span><span class="hs-comment">-- | Combine locations from two 'Located' things and add them to a third thing</span><span>
</span><span id="line-746"></span><span id="local-6989586621680800364"><span id="local-6989586621680800365"><span id="local-6989586621680800366"><span class="annot"><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier hs-type">addCLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800366"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800365"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800364"><span class="hs-identifier hs-type">c</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800364"><span class="hs-identifier hs-type">c</span></a></span></span></span></span><span>
</span><span id="line-747"></span><span id="addCLoc"><span class="annot"><span class="annottext">addCLoc :: forall a b c. Located a -&gt; Located b -&gt; c -&gt; Located c
</span><a href="GHC.Types.SrcLoc.html#addCLoc"><span class="hs-identifier hs-var hs-var">addCLoc</span></a></span></span><span> </span><span id="local-6989586621680799266"><span class="annot"><span class="annottext">Located a
</span><a href="#local-6989586621680799266"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799265"><span class="annot"><span class="annottext">Located b
</span><a href="#local-6989586621680799265"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621680799264"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680799264"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; c -&gt; GenLocated SrcSpan c
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SrcSpan -&gt; SrcSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#combineSrcSpans"><span class="hs-identifier hs-var">combineSrcSpans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located a -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located a
</span><a href="#local-6989586621680799266"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Located b -&gt; SrcSpan
forall l e. GenLocated l e -&gt; l
</span><a href="GHC.Types.SrcLoc.html#getLoc"><span class="hs-identifier hs-var">getLoc</span></a></span><span> </span><span class="annot"><span class="annottext">Located b
</span><a href="#local-6989586621680799265"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621680799264"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-748"></span><span>
</span><span id="line-749"></span><span class="hs-comment">-- not clear whether to add a general Eq instance, but this is useful sometimes:</span><span>
</span><span id="line-750"></span><span>
</span><span id="line-751"></span><span class="hs-comment">-- | Tests whether the two located things are equal</span><span>
</span><span id="line-752"></span><span id="local-6989586621680800359"><span id="local-6989586621680800360"><span class="annot"><a href="GHC.Types.SrcLoc.html#eqLocated"><span class="hs-identifier hs-type">eqLocated</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Eq</span></span><span> </span><span class="annot"><a href="#local-6989586621680800360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800359"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800359"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800360"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span></span><span>
</span><span id="line-753"></span><span id="eqLocated"><span class="annot"><span class="annottext">eqLocated :: forall a l. Eq a =&gt; GenLocated l a -&gt; GenLocated l a -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#eqLocated"><span class="hs-identifier hs-var hs-var">eqLocated</span></a></span></span><span> </span><span id="local-6989586621680799261"><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799261"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799260"><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799260"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenLocated l a -&gt; a
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799261"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">GenLocated l a -&gt; a
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799260"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-754"></span><span>
</span><span id="line-755"></span><span class="hs-comment">-- not clear whether to add a general Ord instance, but this is useful sometimes:</span><span>
</span><span id="line-756"></span><span>
</span><span id="line-757"></span><span class="hs-comment">-- | Tests the ordering of the two located things</span><span>
</span><span id="line-758"></span><span id="local-6989586621680800355"><span id="local-6989586621680800356"><span class="annot"><a href="GHC.Types.SrcLoc.html#cmpLocated"><span class="hs-identifier hs-type">cmpLocated</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ord</span></span><span> </span><span class="annot"><a href="#local-6989586621680800356"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800355"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800356"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800355"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800356"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span></span></span><span>
</span><span id="line-759"></span><span id="cmpLocated"><span class="annot"><span class="annottext">cmpLocated :: forall a l. Ord a =&gt; GenLocated l a -&gt; GenLocated l a -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#cmpLocated"><span class="hs-identifier hs-var hs-var">cmpLocated</span></a></span></span><span> </span><span id="local-6989586621680799257"><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799257"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799256"><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799256"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">GenLocated l a -&gt; a
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799257"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; a -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">GenLocated l a -&gt; a
forall l e. GenLocated l e -&gt; e
</span><a href="GHC.Types.SrcLoc.html#unLoc"><span class="hs-identifier hs-var">unLoc</span></a></span><span> </span><span class="annot"><span class="annottext">GenLocated l a
</span><a href="#local-6989586621680799256"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-760"></span><span>
</span><span id="line-761"></span><span class="hs-comment">-- | Compare the 'BufSpan' of two located things.</span><span>
</span><span id="line-762"></span><span class="hs-comment">--</span><span>
</span><span id="line-763"></span><span class="hs-comment">-- Precondition: both operands have an associated 'BufSpan'.</span><span>
</span><span id="line-764"></span><span id="local-6989586621680800351"><span class="annot"><a href="GHC.Types.SrcLoc.html#cmpBufSpan"><span class="hs-identifier hs-type">cmpBufSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Misc.html#HasDebugCallStack"><span class="hs-identifier hs-type">HasDebugCallStack</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800351"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#Located"><span class="hs-identifier hs-type">Located</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800351"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span></span><span>
</span><span id="line-765"></span><span id="cmpBufSpan"><span class="annot"><span class="annottext">cmpBufSpan :: forall a. HasDebugCallStack =&gt; Located a -&gt; Located a -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#cmpBufSpan"><span class="hs-identifier hs-var hs-var">cmpBufSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799253"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799253"><span class="hs-identifier hs-var">l1</span></a></span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799252"><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799252"><span class="hs-identifier hs-var">l2</span></a></span></span><span>  </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-766"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680799251"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799251"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Maybe BufSpan
</span><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier hs-var">getBufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799253"><span class="hs-identifier hs-var">l1</span></a></span><span>
</span><span id="line-767"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621680799250"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799250"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">SrcSpan -&gt; Maybe BufSpan
</span><a href="GHC.Types.SrcLoc.html#getBufSpan"><span class="hs-identifier hs-var">getBufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><a href="#local-6989586621680799252"><span class="hs-identifier hs-var">l2</span></a></span><span>
</span><span id="line-768"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BufSpan -&gt; BufSpan -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-identifier hs-var">compare</span></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799251"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799250"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-769"></span><span>
</span><span id="line-770"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Ordering
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cmpBufSpan: no BufSpan&quot;</span></span><span>
</span><span id="line-771"></span><span>
</span><span id="line-772"></span><span id="local-6989586621680800347"><span id="local-6989586621680800348"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680799246"><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800348"><span class="hs-identifier hs-type">l</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800347"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800348"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800347"><span class="hs-identifier hs-type">e</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-773"></span><span>  </span><span id="local-6989586621680799243"><span class="annot"><span class="annottext">ppr :: GenLocated l e -&gt; SDoc
</span><a href="#local-6989586621680799243"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799242"><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799242"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621680799241"><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799241"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-comment">-- TODO: We can't do this since Located was refactored into</span><span>
</span><span id="line-774"></span><span>                </span><span class="hs-comment">-- GenLocated:</span><span>
</span><span id="line-775"></span><span>                </span><span class="hs-comment">-- Print spans without the file name etc</span><span>
</span><span id="line-776"></span><span>                </span><span class="hs-comment">-- ifPprDebug (braces (pprUserSpan False l))</span><span>
</span><span id="line-777"></span><span>                </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var">whenPprDebug</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#braces"><span class="hs-identifier hs-var">braces</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">l -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799242"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-778"></span><span>             </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">e -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">e
</span><a href="#local-6989586621680799241"><span class="hs-identifier hs-var">e</span></a></span></span></span><span>
</span><span id="line-779"></span><span>
</span><span id="line-780"></span><span class="hs-comment">{-
************************************************************************
*                                                                      *
\subsection{Ordering SrcSpans for InteractiveUI}
*                                                                      *
************************************************************************
-}</span><span>
</span><span id="line-787"></span><span>
</span><span id="line-788"></span><span class="hs-comment">-- | Strategies for ordering 'SrcSpan's</span><span>
</span><span id="line-789"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmost_smallest"><span class="hs-identifier hs-type">leftmost_smallest</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmost_largest"><span class="hs-identifier hs-type">leftmost_largest</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#rightmost_smallest"><span class="hs-identifier hs-type">rightmost_smallest</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span><span>
</span><span id="line-790"></span><span id="rightmost_smallest"><span class="annot"><span class="annottext">rightmost_smallest :: SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#rightmost_smallest"><span class="hs-identifier hs-var hs-var">rightmost_smallest</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-identifier hs-var">compare</span></span><span class="hs-special">)</span><span>
</span><span id="line-791"></span><span id="leftmost_smallest"><span class="annot"><span class="annottext">leftmost_smallest :: SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#leftmost_smallest"><span class="hs-identifier hs-var hs-var">leftmost_smallest</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-identifier hs-var">compare</span></span><span>
</span><span id="line-792"></span><span id="leftmost_largest"><span class="annot"><span class="annottext">leftmost_largest :: SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#leftmost_largest"><span class="hs-identifier hs-var hs-var">leftmost_largest</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="annot"><span class="annottext">((RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
 -&gt; SrcSpan -&gt; SrcSpan -&gt; Ordering)
-&gt; (RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; SrcSpan
-&gt; SrcSpan
-&gt; Ordering
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621680799235"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799235"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621680799234"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799234"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-793"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799235"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799234"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-794"></span><span>    </span><span class="annot"><span class="annottext">Ordering -&gt; Ordering -&gt; Ordering
</span><a href="GHC.Utils.Misc.html#thenCmp"><span class="hs-operator hs-var">`thenCmp`</span></a></span><span>
</span><span id="line-795"></span><span>  </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799234"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Ordering
forall a. Ord a =&gt; a -&gt; a -&gt; Ordering
</span><span class="hs-operator hs-var">`compare`</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799235"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-796"></span><span>
</span><span id="line-797"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-type">compareSrcSpanBy</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Ordering</span></span><span>
</span><span id="line-798"></span><span id="compareSrcSpanBy"><span class="annot"><span class="annottext">compareSrcSpanBy :: (RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering)
-&gt; SrcSpan -&gt; SrcSpan -&gt; Ordering
</span><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var hs-var">compareSrcSpanBy</span></a></span></span><span> </span><span id="local-6989586621680799233"><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><a href="#local-6989586621680799233"><span class="hs-identifier hs-var">cmp</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799232"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799232"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799231"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799231"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><a href="#local-6989586621680799233"><span class="hs-identifier hs-var">cmp</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799232"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799231"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-799"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">LT</span></span><span>
</span><span id="line-800"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">GT</span></span><span>
</span><span id="line-801"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#compareSrcSpanBy"><span class="hs-identifier hs-var">compareSrcSpanBy</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Ordering
</span><span class="hs-identifier">_</span></span><span>   </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Ordering
</span><span class="hs-identifier hs-var">EQ</span></span><span>
</span><span id="line-802"></span><span>
</span><span id="line-803"></span><span class="hs-comment">-- | Determines whether a span encloses a given line and column index</span><span>
</span><span id="line-804"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#spans"><span class="hs-identifier hs-type">spans</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-805"></span><span id="spans"><span class="annot"><span class="annottext">spans :: SrcSpan -&gt; (Int, Int) -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#spans"><span class="hs-identifier hs-var hs-var">spans</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#UnhelpfulSpan"><span class="hs-identifier hs-type">UnhelpfulSpan</span></a></span><span> </span><span class="annot"><span class="annottext">UnhelpfulSpanReason
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(Int, Int)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; Bool
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;spans UnhelpfulSpan&quot;</span></span><span>
</span><span id="line-806"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#spans"><span class="hs-identifier hs-var">spans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799230"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799230"><span class="hs-identifier hs-var">span</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799229"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799229"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621680799228"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799228"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799230"><span class="hs-identifier hs-var">span</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799227"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799227"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799230"><span class="hs-identifier hs-var">span</span></a></span><span>
</span><span id="line-807"></span><span>   </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621680799227"><span class="annot"><span class="annottext">loc :: RealSrcLoc
</span><a href="#local-6989586621680799227"><span class="hs-identifier hs-var hs-var">loc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FastString -&gt; Int -&gt; Int -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcLoc"><span class="hs-identifier hs-var">mkRealSrcLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799230"><span class="hs-identifier hs-var">span</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799229"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680799228"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-808"></span><span>
</span><span id="line-809"></span><span class="hs-comment">-- | Determines whether a span is enclosed by another one</span><span>
</span><span id="line-810"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isSubspanOf"><span class="hs-identifier hs-type">isSubspanOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-comment">-- ^ The span that may be enclosed by the other</span><span>
</span><span id="line-811"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span> </span><span class="hs-comment">-- ^ The span it may be enclosed by</span><span>
</span><span id="line-812"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-813"></span><span id="isSubspanOf"><span class="annot"><span class="annottext">isSubspanOf :: SrcSpan -&gt; SrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isSubspanOf"><span class="hs-identifier hs-var hs-var">isSubspanOf</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799226"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799226"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span id="local-6989586621680799225"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799225"><span class="hs-identifier hs-var">parent</span></a></span></span><span> </span><span class="annot"><span class="annottext">Maybe BufSpan
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isRealSubspanOf"><span class="hs-identifier hs-var">isRealSubspanOf</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799226"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799225"><span class="hs-identifier hs-var">parent</span></a></span><span>
</span><span id="line-814"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isSubspanOf"><span class="hs-identifier hs-var">isSubspanOf</span></a></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">SrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-815"></span><span>
</span><span id="line-816"></span><span class="hs-comment">-- | Determines whether a span is enclosed by another one</span><span>
</span><span id="line-817"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#isRealSubspanOf"><span class="hs-identifier hs-type">isRealSubspanOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-comment">-- ^ The span that may be enclosed by the other</span><span>
</span><span id="line-818"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span> </span><span class="hs-comment">-- ^ The span it may be enclosed by</span><span>
</span><span id="line-819"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-820"></span><span id="isRealSubspanOf"><span class="annot"><span class="annottext">isRealSubspanOf :: RealSrcSpan -&gt; RealSrcSpan -&gt; Bool
</span><a href="GHC.Types.SrcLoc.html#isRealSubspanOf"><span class="hs-identifier hs-var hs-var">isRealSubspanOf</span></a></span></span><span> </span><span id="local-6989586621680799224"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799224"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621680799223"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799223"><span class="hs-identifier hs-var">parent</span></a></span></span><span>
</span><span id="line-821"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799223"><span class="hs-identifier hs-var">parent</span></a></span><span> </span><span class="annot"><span class="annottext">FastString -&gt; FastString -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">/=</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; FastString
</span><a href="GHC.Types.SrcLoc.html#srcSpanFile"><span class="hs-identifier hs-var hs-var">srcSpanFile</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799224"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-822"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799223"><span class="hs-identifier hs-var">parent</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799224"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span>
</span><span id="line-823"></span><span>                  </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799223"><span class="hs-identifier hs-var">parent</span></a></span><span>   </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799224"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-824"></span><span>
</span><span id="line-825"></span><span id="local-6989586621680800340"><span id="local-6989586621680800341"><span id="local-6989586621680800342"><span id="local-6989586621680800343"><span class="annot"><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-type">liftL</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800343"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621680800342"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800343"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800341"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800340"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800342"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800343"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800340"><span class="hs-identifier hs-type">l</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800341"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-826"></span><span id="liftL"><span class="annot"><span class="annottext">liftL :: forall (m :: * -&gt; *) a b l.
Monad m =&gt;
(a -&gt; m b) -&gt; GenLocated l a -&gt; m (GenLocated l b)
</span><a href="GHC.Types.SrcLoc.html#liftL"><span class="hs-identifier hs-var hs-var">liftL</span></a></span></span><span> </span><span id="local-6989586621680799218"><span class="annot"><span class="annottext">a -&gt; m b
</span><a href="#local-6989586621680799218"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799217"><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799217"><span class="hs-identifier hs-var">loc</span></a></span></span><span> </span><span id="local-6989586621680799216"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680799216"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-827"></span><span>  </span><span id="local-6989586621680799215"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680799215"><span class="hs-identifier hs-var">a'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">a -&gt; m b
</span><a href="#local-6989586621680799218"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680799216"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-828"></span><span>  </span><span class="annot"><span class="annottext">GenLocated l b -&gt; m (GenLocated l b)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(GenLocated l b -&gt; m (GenLocated l b))
-&gt; GenLocated l b -&gt; m (GenLocated l b)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">l -&gt; b -&gt; GenLocated l b
forall l e. l -&gt; e -&gt; GenLocated l e
</span><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-var">L</span></a></span><span> </span><span class="annot"><span class="annottext">l
</span><a href="#local-6989586621680799217"><span class="hs-identifier hs-var">loc</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621680799215"><span class="hs-identifier hs-var">a'</span></a></span><span>
</span><span id="line-829"></span><span>
</span><span id="line-830"></span><span id="local-6989586621680800333"><span class="annot"><a href="GHC.Types.SrcLoc.html#getRealSrcSpan"><span class="hs-identifier hs-type">getRealSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier hs-type">RealLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800333"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span></span><span>
</span><span id="line-831"></span><span id="getRealSrcSpan"><span class="annot"><span class="annottext">getRealSrcSpan :: forall a. RealLocated a -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#getRealSrcSpan"><span class="hs-identifier hs-var hs-var">getRealSrcSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span id="local-6989586621680799214"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799214"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799214"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-832"></span><span>
</span><span id="line-833"></span><span id="local-6989586621680800331"><span class="annot"><a href="GHC.Types.SrcLoc.html#unRealSrcSpan"><span class="hs-identifier hs-type">unRealSrcSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealLocated"><span class="hs-identifier hs-type">RealLocated</span></a></span><span> </span><span class="annot"><a href="#local-6989586621680800331"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680800331"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-834"></span><span id="unRealSrcSpan"><span class="annot"><span class="annottext">unRealSrcSpan :: forall a. RealLocated a -&gt; a
</span><a href="GHC.Types.SrcLoc.html#unRealSrcSpan"><span class="hs-identifier hs-var hs-var">unRealSrcSpan</span></a></span></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#L"><span class="hs-identifier hs-type">L</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680799213"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680799213"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621680799213"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-835"></span><span>
</span><span id="line-836"></span><span>
</span><span id="line-837"></span><span class="hs-comment">-- | A location as produced by the parser. Consists of two components:</span><span>
</span><span id="line-838"></span><span class="hs-comment">--</span><span>
</span><span id="line-839"></span><span class="hs-comment">-- * The location in the file, adjusted for #line and {-# LINE ... #-} pragmas (RealSrcLoc)</span><span>
</span><span id="line-840"></span><span class="hs-comment">-- * The location in the string buffer (BufPos) with monotonicity guarantees (see #17632)</span><span>
</span><span id="line-841"></span><span class="hs-keyword">data</span><span> </span><span id="PsLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-var">PsLoc</span></a></span></span><span>
</span><span id="line-842"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PsLoc"><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-var">PsLoc</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="psRealLoc"><span class="annot"><span class="annottext">PsLoc -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#psRealLoc"><span class="hs-identifier hs-var hs-var">psRealLoc</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcLoc"><span class="hs-identifier hs-type">RealSrcLoc</span></a></span><span class="hs-special">,</span><span> </span><span id="psBufPos"><span class="annot"><span class="annottext">PsLoc -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#psBufPos"><span class="hs-identifier hs-var hs-var">psBufPos</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufPos"><span class="hs-identifier hs-type">BufPos</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-843"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799204"><span id="local-6989586621680799208"><span class="annot"><span class="annottext">PsLoc -&gt; PsLoc -&gt; Bool
(PsLoc -&gt; PsLoc -&gt; Bool) -&gt; (PsLoc -&gt; PsLoc -&gt; Bool) -&gt; Eq PsLoc
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: PsLoc -&gt; PsLoc -&gt; Bool
$c/= :: PsLoc -&gt; PsLoc -&gt; Bool
== :: PsLoc -&gt; PsLoc -&gt; Bool
$c== :: PsLoc -&gt; PsLoc -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799181"><span id="local-6989586621680799183"><span id="local-6989586621680799186"><span id="local-6989586621680799189"><span id="local-6989586621680799192"><span id="local-6989586621680799196"><span id="local-6989586621680799200"><span class="annot"><span class="annottext">Eq PsLoc
Eq PsLoc
-&gt; (PsLoc -&gt; PsLoc -&gt; Ordering)
-&gt; (PsLoc -&gt; PsLoc -&gt; Bool)
-&gt; (PsLoc -&gt; PsLoc -&gt; Bool)
-&gt; (PsLoc -&gt; PsLoc -&gt; Bool)
-&gt; (PsLoc -&gt; PsLoc -&gt; Bool)
-&gt; (PsLoc -&gt; PsLoc -&gt; PsLoc)
-&gt; (PsLoc -&gt; PsLoc -&gt; PsLoc)
-&gt; Ord PsLoc
PsLoc -&gt; PsLoc -&gt; Bool
PsLoc -&gt; PsLoc -&gt; Ordering
PsLoc -&gt; PsLoc -&gt; PsLoc
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: PsLoc -&gt; PsLoc -&gt; PsLoc
$cmin :: PsLoc -&gt; PsLoc -&gt; PsLoc
max :: PsLoc -&gt; PsLoc -&gt; PsLoc
$cmax :: PsLoc -&gt; PsLoc -&gt; PsLoc
&gt;= :: PsLoc -&gt; PsLoc -&gt; Bool
$c&gt;= :: PsLoc -&gt; PsLoc -&gt; Bool
&gt; :: PsLoc -&gt; PsLoc -&gt; Bool
$c&gt; :: PsLoc -&gt; PsLoc -&gt; Bool
&lt;= :: PsLoc -&gt; PsLoc -&gt; Bool
$c&lt;= :: PsLoc -&gt; PsLoc -&gt; Bool
&lt; :: PsLoc -&gt; PsLoc -&gt; Bool
$c&lt; :: PsLoc -&gt; PsLoc -&gt; Bool
compare :: PsLoc -&gt; PsLoc -&gt; Ordering
$ccompare :: PsLoc -&gt; PsLoc -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799172"><span id="local-6989586621680799174"><span id="local-6989586621680799179"><span class="annot"><span class="annottext">Int -&gt; PsLoc -&gt; ShowS
[PsLoc] -&gt; ShowS
PsLoc -&gt; String
(Int -&gt; PsLoc -&gt; ShowS)
-&gt; (PsLoc -&gt; String) -&gt; ([PsLoc] -&gt; ShowS) -&gt; Show PsLoc
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [PsLoc] -&gt; ShowS
$cshowList :: [PsLoc] -&gt; ShowS
show :: PsLoc -&gt; String
$cshow :: PsLoc -&gt; String
showsPrec :: Int -&gt; PsLoc -&gt; ShowS
$cshowsPrec :: Int -&gt; PsLoc -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-844"></span><span>
</span><span id="line-845"></span><span class="hs-keyword">data</span><span> </span><span id="PsSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-var">PsSpan</span></a></span></span><span>
</span><span id="line-846"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PsSpan"><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-var">PsSpan</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="psRealSpan"><span class="annot"><span class="annottext">PsSpan -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#psRealSpan"><span class="hs-identifier hs-var hs-var">psRealSpan</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-type">RealSrcSpan</span></a></span><span class="hs-special">,</span><span> </span><span id="psBufSpan"><span class="annot"><span class="annottext">PsSpan -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#psBufSpan"><span class="hs-identifier hs-var hs-var">psBufSpan</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-type">BufSpan</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-847"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799163"><span id="local-6989586621680799167"><span class="annot"><span class="annottext">PsSpan -&gt; PsSpan -&gt; Bool
(PsSpan -&gt; PsSpan -&gt; Bool)
-&gt; (PsSpan -&gt; PsSpan -&gt; Bool) -&gt; Eq PsSpan
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: PsSpan -&gt; PsSpan -&gt; Bool
$c/= :: PsSpan -&gt; PsSpan -&gt; Bool
== :: PsSpan -&gt; PsSpan -&gt; Bool
$c== :: PsSpan -&gt; PsSpan -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799140"><span id="local-6989586621680799142"><span id="local-6989586621680799145"><span id="local-6989586621680799148"><span id="local-6989586621680799151"><span id="local-6989586621680799155"><span id="local-6989586621680799159"><span class="annot"><span class="annottext">Eq PsSpan
Eq PsSpan
-&gt; (PsSpan -&gt; PsSpan -&gt; Ordering)
-&gt; (PsSpan -&gt; PsSpan -&gt; Bool)
-&gt; (PsSpan -&gt; PsSpan -&gt; Bool)
-&gt; (PsSpan -&gt; PsSpan -&gt; Bool)
-&gt; (PsSpan -&gt; PsSpan -&gt; Bool)
-&gt; (PsSpan -&gt; PsSpan -&gt; PsSpan)
-&gt; (PsSpan -&gt; PsSpan -&gt; PsSpan)
-&gt; Ord PsSpan
PsSpan -&gt; PsSpan -&gt; Bool
PsSpan -&gt; PsSpan -&gt; Ordering
PsSpan -&gt; PsSpan -&gt; PsSpan
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: PsSpan -&gt; PsSpan -&gt; PsSpan
$cmin :: PsSpan -&gt; PsSpan -&gt; PsSpan
max :: PsSpan -&gt; PsSpan -&gt; PsSpan
$cmax :: PsSpan -&gt; PsSpan -&gt; PsSpan
&gt;= :: PsSpan -&gt; PsSpan -&gt; Bool
$c&gt;= :: PsSpan -&gt; PsSpan -&gt; Bool
&gt; :: PsSpan -&gt; PsSpan -&gt; Bool
$c&gt; :: PsSpan -&gt; PsSpan -&gt; Bool
&lt;= :: PsSpan -&gt; PsSpan -&gt; Bool
$c&lt;= :: PsSpan -&gt; PsSpan -&gt; Bool
&lt; :: PsSpan -&gt; PsSpan -&gt; Bool
$c&lt; :: PsSpan -&gt; PsSpan -&gt; Bool
compare :: PsSpan -&gt; PsSpan -&gt; Ordering
$ccompare :: PsSpan -&gt; PsSpan -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799131"><span id="local-6989586621680799133"><span id="local-6989586621680799138"><span class="annot"><span class="annottext">Int -&gt; PsSpan -&gt; ShowS
[PsSpan] -&gt; ShowS
PsSpan -&gt; String
(Int -&gt; PsSpan -&gt; ShowS)
-&gt; (PsSpan -&gt; String) -&gt; ([PsSpan] -&gt; ShowS) -&gt; Show PsSpan
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [PsSpan] -&gt; ShowS
$cshowList :: [PsSpan] -&gt; ShowS
show :: PsSpan -&gt; String
$cshow :: PsSpan -&gt; String
showsPrec :: Int -&gt; PsSpan -&gt; ShowS
$cshowsPrec :: Int -&gt; PsSpan -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-848"></span><span>
</span><span id="line-849"></span><span class="hs-keyword">type</span><span> </span><span id="PsLocated"><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLocated"><span class="hs-identifier hs-var">PsLocated</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#GenLocated"><span class="hs-identifier hs-type">GenLocated</span></a></span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span>
</span><span id="line-850"></span><span>
</span><span id="line-851"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#advancePsLoc"><span class="hs-identifier hs-type">advancePsLoc</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span>
</span><span id="line-852"></span><span id="advancePsLoc"><span class="annot"><span class="annottext">advancePsLoc :: PsLoc -&gt; Char -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#advancePsLoc"><span class="hs-identifier hs-var hs-var">advancePsLoc</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span id="local-6989586621680799130"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799130"><span class="hs-identifier hs-var">real_loc</span></a></span></span><span> </span><span id="local-6989586621680799129"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799129"><span class="hs-identifier hs-var">buf_loc</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621680799128"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680799128"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-853"></span><span>  </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; BufPos -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-var">PsLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcLoc -&gt; Char -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#advanceSrcLoc"><span class="hs-identifier hs-var">advanceSrcLoc</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799130"><span class="hs-identifier hs-var">real_loc</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621680799128"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufPos -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#advanceBufPos"><span class="hs-identifier hs-var">advanceBufPos</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799129"><span class="hs-identifier hs-var">buf_loc</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-854"></span><span>
</span><span id="line-855"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkPsSpan"><span class="hs-identifier hs-type">mkPsSpan</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span>
</span><span id="line-856"></span><span id="mkPsSpan"><span class="annot"><span class="annottext">mkPsSpan :: PsLoc -&gt; PsLoc -&gt; PsSpan
</span><a href="GHC.Types.SrcLoc.html#mkPsSpan"><span class="hs-identifier hs-var hs-var">mkPsSpan</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span id="local-6989586621680799127"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799127"><span class="hs-identifier hs-var">r1</span></a></span></span><span> </span><span id="local-6989586621680799126"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799126"><span class="hs-identifier hs-var">b1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span> </span><span id="local-6989586621680799125"><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799125"><span class="hs-identifier hs-var">r2</span></a></span></span><span> </span><span id="local-6989586621680799124"><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799124"><span class="hs-identifier hs-var">b2</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; BufSpan -&gt; PsSpan
</span><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-var">PsSpan</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcLoc -&gt; RealSrcLoc -&gt; RealSrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkRealSrcSpan"><span class="hs-identifier hs-var">mkRealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799127"><span class="hs-identifier hs-var">r1</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcLoc
</span><a href="#local-6989586621680799125"><span class="hs-identifier hs-var">r2</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufPos -&gt; BufPos -&gt; BufSpan
</span><a href="GHC.Types.SrcLoc.html#BufSpan"><span class="hs-identifier hs-var">BufSpan</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799126"><span class="hs-identifier hs-var">b1</span></a></span><span> </span><span class="annot"><span class="annottext">BufPos
</span><a href="#local-6989586621680799124"><span class="hs-identifier hs-var">b2</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-857"></span><span>
</span><span id="line-858"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#psSpanStart"><span class="hs-identifier hs-type">psSpanStart</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span>
</span><span id="line-859"></span><span id="psSpanStart"><span class="annot"><span class="annottext">psSpanStart :: PsSpan -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#psSpanStart"><span class="hs-identifier hs-var hs-var">psSpanStart</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span id="local-6989586621680799123"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799123"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621680799122"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799122"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; BufPos -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-var">PsLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanStart"><span class="hs-identifier hs-var">realSrcSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799123"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanStart"><span class="hs-identifier hs-var hs-var">bufSpanStart</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799122"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-860"></span><span>
</span><span id="line-861"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#psSpanEnd"><span class="hs-identifier hs-type">psSpanEnd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-type">PsLoc</span></a></span><span>
</span><span id="line-862"></span><span id="psSpanEnd"><span class="annot"><span class="annottext">psSpanEnd :: PsSpan -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#psSpanEnd"><span class="hs-identifier hs-var hs-var">psSpanEnd</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span id="local-6989586621680799121"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799121"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621680799120"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799120"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcLoc -&gt; BufPos -&gt; PsLoc
</span><a href="GHC.Types.SrcLoc.html#PsLoc"><span class="hs-identifier hs-var">PsLoc</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">RealSrcSpan -&gt; RealSrcLoc
</span><a href="GHC.Types.SrcLoc.html#realSrcSpanEnd"><span class="hs-identifier hs-var">realSrcSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799121"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; BufPos
</span><a href="GHC.Types.SrcLoc.html#bufSpanEnd"><span class="hs-identifier hs-var hs-var">bufSpanEnd</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799120"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-863"></span><span>
</span><span id="line-864"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#mkSrcSpanPs"><span class="hs-identifier hs-type">mkSrcSpanPs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.SrcLoc.html#SrcSpan"><span class="hs-identifier hs-type">SrcSpan</span></a></span><span>
</span><span id="line-865"></span><span id="mkSrcSpanPs"><span class="annot"><span class="annottext">mkSrcSpanPs :: PsSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#mkSrcSpanPs"><span class="hs-identifier hs-var hs-var">mkSrcSpanPs</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.SrcLoc.html#PsSpan"><span class="hs-identifier hs-type">PsSpan</span></a></span><span> </span><span id="local-6989586621680799119"><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799119"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621680799118"><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799118"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">RealSrcSpan -&gt; Maybe BufSpan -&gt; SrcSpan
</span><a href="GHC.Types.SrcLoc.html#RealSrcSpan"><span class="hs-identifier hs-var">RealSrcSpan</span></a></span><span> </span><span class="annot"><span class="annottext">RealSrcSpan
</span><a href="#local-6989586621680799119"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BufSpan -&gt; Maybe BufSpan
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">BufSpan
</span><a href="#local-6989586621680799118"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-866"></span><span>
</span><span id="line-867"></span><span class="hs-comment">-- | Layout information for declarations.</span><span>
</span><span id="line-868"></span><span class="hs-keyword">data</span><span> </span><span id="LayoutInfo"><span class="annot"><a href="GHC.Types.SrcLoc.html#LayoutInfo"><span class="hs-identifier hs-var">LayoutInfo</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-869"></span><span>
</span><span id="line-870"></span><span>    </span><span class="hs-comment">-- | Explicit braces written by the user.</span><span>
</span><span id="line-871"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-872"></span><span>    </span><span class="hs-comment">-- @</span><span>
</span><span id="line-873"></span><span>    </span><span class="hs-comment">-- class C a where { foo :: a; bar :: a }</span><span>
</span><span id="line-874"></span><span>    </span><span class="hs-comment">-- @</span><span>
</span><span id="line-875"></span><span>    </span><span id="ExplicitBraces"><span class="annot"><a href="GHC.Types.SrcLoc.html#ExplicitBraces"><span class="hs-identifier hs-var">ExplicitBraces</span></a></span></span><span>
</span><span id="line-876"></span><span>  </span><span class="hs-glyph">|</span><span>
</span><span id="line-877"></span><span>    </span><span class="hs-comment">-- | Virtual braces inserted by the layout algorithm.</span><span>
</span><span id="line-878"></span><span>    </span><span class="hs-comment">--</span><span>
</span><span id="line-879"></span><span>    </span><span class="hs-comment">-- @</span><span>
</span><span id="line-880"></span><span>    </span><span class="hs-comment">-- class C a where</span><span>
</span><span id="line-881"></span><span>    </span><span class="hs-comment">--   foo :: a</span><span>
</span><span id="line-882"></span><span>    </span><span class="hs-comment">--   bar :: a</span><span>
</span><span id="line-883"></span><span>    </span><span class="hs-comment">-- @</span><span>
</span><span id="line-884"></span><span>    </span><span id="VirtualBraces"><span class="annot"><a href="GHC.Types.SrcLoc.html#VirtualBraces"><span class="hs-identifier hs-var">VirtualBraces</span></a></span></span><span>
</span><span id="line-885"></span><span>      </span><span class="hs-glyph">!</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-comment">-- ^ Layout column (indentation level, begins at 1)</span><span>
</span><span id="line-886"></span><span>  </span><span class="hs-glyph">|</span><span>
</span><span id="line-887"></span><span>    </span><span class="hs-comment">-- | Empty or compiler-generated blocks do not have layout information</span><span>
</span><span id="line-888"></span><span>    </span><span class="hs-comment">-- associated with them.</span><span>
</span><span id="line-889"></span><span>    </span><span id="NoLayoutInfo"><span class="annot"><a href="GHC.Types.SrcLoc.html#NoLayoutInfo"><span class="hs-identifier hs-var">NoLayoutInfo</span></a></span></span><span>
</span><span id="line-890"></span><span>
</span><span id="line-891"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621680799110"><span id="local-6989586621680799113"><span class="annot"><span class="annottext">LayoutInfo -&gt; LayoutInfo -&gt; Bool
(LayoutInfo -&gt; LayoutInfo -&gt; Bool)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Bool) -&gt; Eq LayoutInfo
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c/= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
== :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c== :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799089"><span id="local-6989586621680799091"><span id="local-6989586621680799094"><span id="local-6989586621680799097"><span id="local-6989586621680799100"><span id="local-6989586621680799103"><span id="local-6989586621680799106"><span class="annot"><span class="annottext">Eq LayoutInfo
Eq LayoutInfo
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Ordering)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Bool)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Bool)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Bool)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; Bool)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo)
-&gt; (LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo)
-&gt; Ord LayoutInfo
LayoutInfo -&gt; LayoutInfo -&gt; Bool
LayoutInfo -&gt; LayoutInfo -&gt; Ordering
LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo
forall a.
Eq a
-&gt; (a -&gt; a -&gt; Ordering)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; Bool)
-&gt; (a -&gt; a -&gt; a)
-&gt; (a -&gt; a -&gt; a)
-&gt; Ord a
min :: LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo
$cmin :: LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo
max :: LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo
$cmax :: LayoutInfo -&gt; LayoutInfo -&gt; LayoutInfo
&gt;= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c&gt;= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
&gt; :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c&gt; :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
&lt;= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c&lt;= :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
&lt; :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
$c&lt; :: LayoutInfo -&gt; LayoutInfo -&gt; Bool
compare :: LayoutInfo -&gt; LayoutInfo -&gt; Ordering
$ccompare :: LayoutInfo -&gt; LayoutInfo -&gt; Ordering
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Ord</span></span></span></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799081"><span id="local-6989586621680799083"><span id="local-6989586621680799087"><span class="annot"><span class="annottext">Int -&gt; LayoutInfo -&gt; ShowS
[LayoutInfo] -&gt; ShowS
LayoutInfo -&gt; String
(Int -&gt; LayoutInfo -&gt; ShowS)
-&gt; (LayoutInfo -&gt; String)
-&gt; ([LayoutInfo] -&gt; ShowS)
-&gt; Show LayoutInfo
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; String) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [LayoutInfo] -&gt; ShowS
$cshowList :: [LayoutInfo] -&gt; ShowS
show :: LayoutInfo -&gt; String
$cshow :: LayoutInfo -&gt; String
showsPrec :: Int -&gt; LayoutInfo -&gt; ShowS
$cshowsPrec :: Int -&gt; LayoutInfo -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621680799048"><span id="local-6989586621680799050"><span id="local-6989586621680799052"><span id="local-6989586621680799054"><span id="local-6989586621680799056"><span id="local-6989586621680799058"><span id="local-6989586621680799060"><span id="local-6989586621680799062"><span id="local-6989586621680799064"><span id="local-6989586621680799066"><span id="local-6989586621680799068"><span id="local-6989586621680799070"><span id="local-6989586621680799073"><span id="local-6989586621680799077"><span class="annot"><span class="annottext">Typeable LayoutInfo
Typeable LayoutInfo
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; LayoutInfo -&gt; c LayoutInfo)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c LayoutInfo)
-&gt; (LayoutInfo -&gt; Constr)
-&gt; (LayoutInfo -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c LayoutInfo))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c LayoutInfo))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; LayoutInfo -&gt; LayoutInfo)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo)
-&gt; Data LayoutInfo
LayoutInfo -&gt; DataType
LayoutInfo -&gt; Constr
(forall b. Data b =&gt; b -&gt; b) -&gt; LayoutInfo -&gt; LayoutInfo
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c LayoutInfo
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; LayoutInfo -&gt; c LayoutInfo
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c LayoutInfo)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c LayoutInfo)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d) -&gt; LayoutInfo -&gt; m LayoutInfo
gmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; u
$cgmapQi :: forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; LayoutInfo -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; LayoutInfo -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; LayoutInfo -&gt; LayoutInfo
$cgmapT :: (forall b. Data b =&gt; b -&gt; b) -&gt; LayoutInfo -&gt; LayoutInfo
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c LayoutInfo)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c LayoutInfo)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c LayoutInfo)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c LayoutInfo)
dataTypeOf :: LayoutInfo -&gt; DataType
$cdataTypeOf :: LayoutInfo -&gt; DataType
toConstr :: LayoutInfo -&gt; Constr
$ctoConstr :: LayoutInfo -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c LayoutInfo
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c LayoutInfo
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; LayoutInfo -&gt; c LayoutInfo
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g) -&gt; LayoutInfo -&gt; c LayoutInfo
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-892"></span><span>
</span><span id="line-893"></span><span class="hs-comment">-- | Indentation level is 1-indexed, so the leftmost column is 1.</span><span>
</span><span id="line-894"></span><span class="annot"><a href="GHC.Types.SrcLoc.html#leftmostColumn"><span class="hs-identifier hs-type">leftmostColumn</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-895"></span><span id="leftmostColumn"><span class="annot"><span class="annottext">leftmostColumn :: Int
</span><a href="GHC.Types.SrcLoc.html#leftmostColumn"><span class="hs-identifier hs-var hs-var">leftmostColumn</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-896"></span></pre></body></html>